我在ASP.NET MVC中遇到麻烦,并将数据从View传递到Controller。我有这样一个模型:ASP.NET MVC,将模型从视图传递到控制器
public class InputModel {
public List<Process> axProc { get; set; }
public string ToJson() {
return new JavaScriptSerializer().Serialize(this);
}
}
public class Process {
public string name { get; set; }
public string value { get; set; }
}
我在控制器创建这个InputModel并将它传递给视图:
public ActionResult Input() {
if (Session["InputModel"] == null)
Session["InputModel"] = loadInputModel();
return View(Session["InputModel"]);
}
在我Input.cshtml文件,然后我有一些代码来生成输入形式:
@model PROJ.Models.InputModel
@using(Html.BeginForm()) {
foreach(PROJ.Models.Process p in Model.axProc){
<input type="text" />
@* @Html.TextBoxFor(?? => p.value) *@
}
<input type="submit" value="SEND" />
}
现在,当我点击提交按钮时,我想处理放入文本框的数据。
问题1:我看过这个@ Html.TextBoxFor(),但我没有真正得到这个“stuff => otherstuff”。我的结论是,“其他人”应该是我想要写入数据的领域,在这种情况下,它可能是“p.value”。但是箭头前面的“东西”是什么?
早在控制器然后我有一些调试的自检功能:
[HttpPost]
public ActionResult Input(InputModel m) {
DEBUG(m.ToJson());
DEBUG("COUNT: " + m.axProc.Count);
return View(m);
}
这里的调试只能说明是这样的:
{"axProc":[]}
COUNT: 0
,返回的模型我得到的是空的。
问题2:我对这个@using(Html.BeginForm())做了一些根本性的错误吗?这在这里不是正确的选择吗?如果是这样,我怎么让我的模型充满数据回控制器?
(我不能用“@model名单<过程>”在这里(因为上面的例子中的简称,在实际的代码将有更多的东西)。)
我希望有人能填补我在与一些我忽略的细节。
您需要了解什么是lambda表达式。 – SLaks
我现在做过。感谢您的名字。 – Cabadath