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