asp.net mvc 3 c#post变量数组
我需要将数组传递给POST方法.但我显然错过了一些东西
我的观点看起来像这样: <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Klausimynas.Models.Rezultat>" %> <input type="text" name="x[1]"> <input type="text" name="x[2]"> <input type="text" name="x[3]"> <input type="text" name="x[4]"> <input type="text" name="x[5]"> <input type="text" name="x[6]"> <input type="text" name="x[7]"> 我的方法声明如下所示: [HttpPost] public ActionResult LetsTest(IEnumerable<Rezultat> rez) 当我试图提取数据时,我得到的值不能为空. 解决方法
这里有一些问题:
>您的视图是为Rezultat键入的,但您尝试将该模型视为IEnumerable< Rezultat>. 所以,要纠正这个问题,你需要改变一些事情. 首先,将视图更改为继承System.Web.Mvc.ViewPage< IEnumerable< Klausimynas.Models.Rezultat>>.现在,您的视图可以传递IEnumerable< Rezultat>,这是您的控制器操作所期望的. 第二,改变这个: <input type="text" name="x[0]"> 对此: <input type="text" name="[0].x"> 这样做的原因是第一个会尝试将值绑定到Model.x [0],这是(或者,一旦你正确键入你的视图),相当于一个实例的属性x中的第一个元素. IEnumerable的< Rezultat取代.这显然不太正确,因为IEnumerable没有公开属性x.你想要的是绑定Model [0] .x,它是索引0处Rezultat对象的属性x. 更好的是,使用帮助器为您生成名称: for(int i=0; i < Model.Count; i++) { @Html.TextBoxFor(m => m[i].x) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 使用没有ORM的ASP.NET MVC
- asp.net – 我可以将ViewBag属性返回给Ajax成功回调吗?
- wcf – OData是否违反了关注点?
- asp.net – 无法加载文件或程序集’System.Net.Http,Versio
- 如何在经典的asp中执行多线程/后台处理
- asp.net-mvc – MVCContrib,Html.Grid:如何将基于行的id附
- asp.net – 如何使用MVC Razor生成SVG
- asp.net-mvc – 如何从基本控制器获取操作名称?
- asp.net-mvc-3 – [显示(提示MVC3
- asp.net – 性能缓慢的Azure’Web App’Azure SQL DB