asp.net-mvc-3 – MVC3强类型的局部视图模型绑定
我有一个强类型视图Edit,名为OrderModel的模型.在此视图中,我使用的是一个强类型的局部视图,其中包含一个名为OrderTypeModel的模型.部分视图_OrderTypeAutoComplete,包含
jqueryui自动完成文本框.如果我使用此代码渲染视图,
public ActionResult Edit(){ return View(); } 我的编辑视图包含以下Razor标记 <div class="editor-field"> @Html.Partial("_OrderTypeAutoComplete") @Html.HiddenFor(model => model.OrderTypeID) @Html.ValidationMessageFor(m => m.OrderTypeID) </div> 我的部分视图包含此剃刀标记 @{ Layout = null; } <script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script> @Html.AutoCompleteFor(model => model.OrderTypeID,x => x.OrderType,"Items","Orders") 当我渲染这个时,一切都很棒,我的自动完成效果很好(使用自动完成扩展).无论如何,我需要在我的初始OrderModel中初始化一些东西,所以我将控制器中的代码更改为此. public ActionResult Edit(){ return View(OrderService.GetInitializedOrderModel()); //returns a new OrderModel } 现在,当我渲染视图时,我得到了异常: 在我看来这一行 当我没有提供OrderModel时,似乎Razor引擎将为视图创建OrderModel,并为部分视图创建OrderTypeModel.这将得到相同的结果. public ActionResult Edit(){ return View(new OrderModel()) } 我是MVC的新手,所以我不确定这里发生了什么.我只是想在OrderModel模型中为我的视图提供一些简单的下拉值,这些值足够小,我不需要jquery回发来获取.这就是我在我的模型中为Http Get on my Edit操作初始化的值. 任何帮助,将不胜感激.谢谢. 解决方法
示例中缺少模型类的类定义,所以我无法确切地知道发生了什么,但……
@Html.Partial() method有一些重载: @Html.Partial(string) @Html.Partial(string,Object) @Html.Partial(string,ViewDataDictionary) @Html.Partial(string,Object,ViewDataDictionary) 前三个重载都只是最后一个的“别名” – 当所有的说完成时它是被调用的最后一个. 当您调用@ Html.Partial(字符串)并且不传递模型值或ViewDataDictionary时,ASP.NET MVC将仅传递当前视图的ViewDataDictionary(即this.ViewData). 换句话说,打电话给: @Html.Partial(string) 基本上相当于: @Html.Partial(string,this.ViewData) …在您的情况下,this.ViewData的类型为OrderModel,而不是OrderModelType. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 从Asp.Net MVC 6 API返回JSON错误
- asp.net-mvc – CultureInfo:ASP.NET / MVC上的Haitian Cr
- asp.net – AWS SNSClient发布请求的超时错误
- asp.net-mvc-3 – Autofac属性注入
- asp.net-mvc – Asp.net MVC查看测试?
- 如何更新asp.net网站(刚更改的文件)
- 使用ApplicationHost.CreateApplicationHost()创建Asp.Net帖
- asp.net – 将persistentCookiesOnPassiveRedirects设置为t
- 向.NET电子邮件添加附件
- .net – 包恢复失败.回滚包更改 – Serilog.AspNetCore