asp.net-mvc – 如何从MVC 3中的View中将List或Collection返回给Controller?
|
有人请帮我从我的观点正确返回此列表.我不明白为什么我为fieldModelList返回null我尝试传递给控制器… 这是我的观点: @model List<Regions.SOA.UI.CopyBookSchemaCreator.Models.FieldModel>
<script type="text/javascript" src="~/Scripts/jquery-ui-1.8.11.min.js"></script>
@using (Html.BeginForm("GetResponse","TestMethods",FormMethod.Post))
{
<table id="tblMethods">
<tr>
<th>
Property Name
</th>
<th>
Request
</th>
</tr>
@foreach (FieldModel fieldModel in Model)
{
<tr>
<td>
@Html.DisplayFor(m => fieldModel.PropertyName)
</td>
<td>
@Html.TextBoxFor(m => fieldModel.PropertyValue)
</td>
</tr>
}
</table>
<div>
<input type="submit"/>
</div>
这是我的控制器: [HttpPost]
public ActionResult GetResponse(List<FieldModel> fieldModelList)
{
return GetResponse(fieldModelList);
}
我正在使用HttpPost方法但是如果我在其中放置一个断点,我就会立即返回null为fieldModelList,我希望这将是我在视图中输入到texbox中的值的列表. model FieldModel … 我认为我的逻辑与我的语法或者我的语法有些不一致,但基本上我想要做的是返回一个类型为FieldModel的列表,每个对应的PropertyName和PropertyValue到控制器.我注意到我没有在视图中的BeginForm语句中传递任何类型的id参数.我需要一个吗? 以防万一,这是我的FieldModel模型类: namespace Regions.SOA.UI.CopyBookSchemaCreator.Models
{
public class FieldModel
{
[Display(Name = "Property")]
public string PropertyName { get; set; }
[Display(Name = "Value")]
public string PropertyValue { get; set; }
}
}
解决方法Phil Haack wrote an article前段时间解释了如何绑定集合(ICollection)来查看模型.它详细介绍了如何创建编辑器模板,您当然也可以这样做.基本上,您需要使用索引为HTML元素的名称属性添加前缀. <input type="text" name="[0].PropertyName" value="Curious George" /> <input type="text" name="[0].PropertyValue" value="H.A. Rey" /> <input type="text" name="[1].PropertyName" value="Ender's Game" /> <input type="text" name="[1].PropertyValue" value="Orson Scott Card" /> 然后,您的控制器可以绑定FieldModel的集合 [HttpPost]
public ActionResult GetResponse(List<FieldModel> fieldModelList)
{
return GetResponse(fieldModelList);
}
我不是100%确定以下将正确命名属性(我建议使用编辑器模板)但您可以轻松使用htmlAttributes参数并使用索引为其命名. @for(int i = 0;i < Model.Count;i++)
{
<tr>
<td>
@Html.DisplayFor(m => m[i].PropertyName)
</td>
<td>
@Html.TextBoxFor(m => m[i].PropertyValue)
</td>
</tr>
}
编辑模板 如果您希望添加编辑器模板,请将名为FieldModel.ascx的部分视图添加到强类型为FieldModel的/ Views / Shared @model Regions.SOA.UI.CopyBookSchemaCreator.Models.FieldModel @Html.TextBoxFor(m => m.PropertyName) @* This might be a label? *@ @Html.TextBoxFor(m => m.PropertyValue) 然后,负责呈现集合的视图部分将如下所示: @for (int i = 0; i < Model.Count; i++) {
@Html.EditorFor(m => m[i]);
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – App Settings和connectionStrings配置设置中连接
- asp.net-mvc – asp.net mvc多语言urls /路由
- asp.net中DataBinding的可维护性最佳实践
- 如何在不使用MembershipProvider的情况下使用ASP.NET登录控
- ASP.NET LinkButton / ImageButton和JQuery验证?
- asp.net-mvc-3 – 将原始html转储到Telerik网格
- 如何通过ASP.NET MVC上传文件并显示进度条?
- asp.net-web-api – Structure Map无参数构造函数错误
- ASP.NET中的超链接控件和链接控件有什么区别?
- asp.net-mvc – ASP.NET MVC,强类型视图,部分视图参数毛刺
- asp.net – MVC 3/4 HttpModule或ActionFilter
- asp.net-mvc – 如何为未经过身份验证的用户隐藏
- asp.net-mvc-4 – signalR:/ signalr/hubs不生成
- 部署DotNetNuke并将ASP.NET应用程序分开 – 可能
- asp.net-mvc-4 – Asp.Net Web Api – ModelBind
- asp.net – 如何从内容页面访问母版页控件
- 选择完成后和提交上传之前的asp.net FileUpload事
- asp.net核心 – 无法在IISExpress中启动ASP.NET
- ASP.NET剃刀参考文档
- 如何知道asp.net 3.5 sp1和asp.net mvc是否安装在
