asp.net-mvc-3 – MVC 3模型属性未在html.action调用的部分视图
发布时间:2020-12-15 22:46:40 所属栏目:asp.Net 来源:网络整理
导读:我的应用程序有一个问题,病例尝试通过示例说明,我有一个表单,这种形式存在几个文本框和下拉列表.为了可重用性,我将3个下拉列表合并到局部视图中,这个部分视图我用@ Html.Action加载,这可以正常工作,当我启动表单时,我看到一切似乎应该是,尽管我不知道为什么,
我的应用程序有一个问题,病例尝试通过示例说明,我有一个表单,这种形式存在几个文本框和下拉列表.为了可重用性,我将3个下拉列表合并到局部视图中,这个部分视图我用@
Html.Action加载,这可以正常工作,当我启动表单时,我看到一切似乎应该是,尽管我不知道为什么,但是那些需要下拉列表直接显示为红色开始,表示为必填字段.
但是当我填写所有内容时,我从下拉列表中选择值,然后单击确定,下拉列表中的值为NULL. 我认为一个代码示例会更容易理解: 主要型号: public class FormModel { [Required] public string UserName { get; set; } [Required] [Display(Name = "Birthdate")] public DateTime? Birthdate { get; set; } //This is what i'm talking about,that is not being set,the location public Location Location { get; set; } } 这是位置类,然后传递给局部视图,通常我认为应该设置,它看起来像这样: public class Location { [Required] [Display(Name = "Country")] public string CountryId { get; set; } [Required] [Display(Name = "Region")] public string RegionId { get; set; } [Required] [Display(Name = "City")] public string CityId { get; set; } } 现在我们有一个局部视图的位置: @model TestWebsite.Models.Location <tr> <td class="editor-label"> @Html.LabelFor(m => m.CountryId) </td> <td class="editor-field"> @Html.DropDownListFor(m => m.CountryId,Model.Countries,"---select--",null) </td> <td> @Html.ValidationMessageFor(m => m.CountryId) </td> </tr> <!-- Region --> <tr> <td class="editor-label"> @Html.LabelFor(m => m.RegionId) </td> <td class="editor-field"> @Html.DropDownListFor(m => m.RegionId,Enumerable.Empty<SelectListItem>(),null) </td> <td> @Html.ValidationMessageFor(m => m.RegionId) </td> </tr> <!-- City --> <tr> <td class="editor-label"> @Html.LabelFor(m => m.CityId) </td> <td class="editor-field"> @Html.DropDownListFor(m => m.CityId,null) </td> <td> @Html.ValidationMessageFor(m => m.CityId) </td> </tr> 那么我们将这个局部视图称为这样的形式: @Html.Action("LocationGroup","Account",Model.Location) 最后在控制器: [ChildActionOnly] public ActionResult LocationGroup(Location model) { model.Countries = GetCountries(); return PartialView("_LocationView",model); } 我知道这是很多代码,但我希望你能帮助我… 解决方法
我想你应该使用编辑器模板:
@model TestWebsite.Models.FormModel @using(Html.BeginForm()) { @Html.EditorFor(x => x.Location) <input type="submit" value="save"/> } 并添加部分内部?/ Views / [ControllerName] /EditorTemplates/Location.cshtml或?/ Views / Shared / EditorTemplates / Location.cshtml 模板代码: @model TestWebsite.Models.Location <tr> <td class="editor-label"> @Html.LabelFor(m => m.CountryId) </td> <td class="editor-field"> @Html.DropDownListFor(m => m.CountryId,null) </td> <td> @Html.ValidationMessageFor(m => m.CityId) </td> </tr> 但是,如果您希望在某些位置部分(不遵循约定),您可以指定位置: @Html.EditorFor(x => x.Location,"~/Views/SpecifyLocation/_Location.cshtml") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 安全地将用户从一个ASP .NET应用程序转移到另一
- asp.net-mvc – LocalDB实例注册表项中缺少“DataDirectory
- asp.net-mvc – 记录死亡的所有黄色屏幕,即使它是编译问题
- asp.net – 如何将Enter键与aspx页面上的按钮相关联?
- asp.net-mvc – 使用viewmodel时的asp.net mvc验证
- 用于asp.net应用程序的脚本引擎
- asp.net – ScriptManager.axd不会缓存
- asp.net-mvc – asp.net mvc:运行error.cshtml的原因(并且
- asp.net – ViewState作为属性
- active-directory – 你能通过ADFS获得用户列表吗?
推荐文章
站长推荐
- asp.net – 在另一个控件之前插入控件
- 配置 – ASP.NET Web Api:项目需要SQL Server E
- asp.net-mvc – asp.net mvc提交时的表单集合
- asp.net – NewRelic – 如何忽略Web应用程序的一
- asp.net – ‘Owin.IAppBuilder’不包含’MapSig
- asp.net-mvc – 使ASP.NET绑定指定media =屏幕的
- ASP.NET:它是否涉及Active X?
- asp.net-ajax – ScriptManager.RegisterClientS
- .net – 如何从ModelState键中删除前缀?
- asp.net-mvc – 没有找到与名为“User”的控制器
热点阅读