ASP.NET MVC 2对Javascript感到困惑

ASP.NET MVC 2对Javascript感到困惑,javascript,jquery,asp.net-mvc-2,asp.net-ajax,Javascript,Jquery,Asp.net Mvc 2,Asp.net Ajax,嗨,我正在构建我的第一个MVC2应用程序,我真的被我正在阅读的所有示例弄糊涂了。我还将Telerik MVC工具包用于他们的网格和其他此类控件 我已经阅读了很多教程并观看了视频,但我不能完全掌握javascript的放置模式以及如何将代码块包装到适当的标记中。例如,我试图通过状态AZ、CA等的下拉列表将客户机与状态关联起来: 我的ClientController如下所示: void PopulateStates() { var tempRepo = RepositoryFactory.C

嗨,我正在构建我的第一个MVC2应用程序,我真的被我正在阅读的所有示例弄糊涂了。我还将Telerik MVC工具包用于他们的网格和其他此类控件

我已经阅读了很多教程并观看了视频,但我不能完全掌握javascript的放置模式以及如何将代码块包装到适当的标记中。例如,我试图通过状态AZ、CA等的下拉列表将客户机与状态关联起来:

我的ClientController如下所示:

void PopulateStates()
{
    var tempRepo = RepositoryFactory.CreateRepostiory<State>(RepositoryType.Business);
    var states = tempRepo.QueryAll().ToList();
    var svmList = states.Select(s => Mapper.Map<State, StateViewModel>(s));

    ViewData["States"] = svmList;
}

public ActionResult Index()
{
    PopulateStates();
    return View();
}
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <% Html.RenderPartial("ClientGrid"); %>

</asp:Content>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>

<%= Html.Telerik().Grid<ViewModels.ClientViewModel>()
    .Name("ClientGrid")
    .EnableCustomBinding(true)
    .DataKeys(keys =>
    {
        keys.Add(c => c.Id);
    })
    .ToolBar(commands => commands.Insert().ButtonType(GridButtonType.Text))
    .DataBinding(dataBinding =>
    {
        dataBinding.Ajax()
            .Select("_Select", "Clients", new Telerik.Web.Mvc.GridState())
            .Insert("_Insert", "Clients", new Telerik.Web.Mvc.GridState())
            .Update("_Save", "Clients", new Telerik.Web.Mvc.GridState())
            .Delete("_Delete", "Clients", new Telerik.Web.Mvc.GridState());
    })
    .Columns(columns =>
    {
        columns.Bound(c => c.Id);
            ...
一般来说,我不知道哪一部分在客户端结束,哪一部分在服务器上编译。我还对lambdas和/或注册事件的不同符号感到非常困惑

lambda的东西快把我累死了。我花了很多时间只是想弄清楚什么时候使用新的{}和=>

javascript在这3个文件中的位置是什么?我需要为它添加特殊的标记吗?
我在哪里使用Javascript几乎可以在任何地方使用,但最好将它放在母版页的标记中。在您的子页面中,您可以包含一个标记,用于将特定于您的页面的javascript放置在母版页的适当位置

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<asp:Content ID="Content2" ContentPlaceHolderID="HeadContent" runat="server">
    //javascript goes here in <script> tags
</asp:Content>

那么什么时候可以把它们混在一起呢?打开/关闭标记的规则是什么?在它们之间加括号是什么?好的,你可以在任何地方混合使用javascript…关于打开/关闭标记,你只需要总是关闭打开的标记-括号应该在它们有意义的地方。在if语句中有一个open标记而不关闭它是没有意义的。foreach语句也是如此。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ViewModels.StateViewModel>" %>

<%=
    Html.Telerik().DropDownList()
    .Name("DropDownList")
    .BindTo
    (
        ((IEnumerable<ViewModels.StateViewModel>)ViewData["States"])
        .Where(s => s.StateType == "State")
        .Select(s => new SelectListItem
        {
            Text = s.FormattedName,
            Value = s.Id.ToString(),
            Selected = (Model != null) ? (Model.Id == s.Id) : false
        })
    )
%>
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<asp:Content ID="Content2" ContentPlaceHolderID="HeadContent" runat="server">
    //javascript goes here in <script> tags
</asp:Content>