我在 mvc 3 razor 中有这段代码
@using (Html.BeginForm("MyAction", "MyController"))
{
<input type="text" id="txt" name="txt"/>
<input type="image" src="image.gif" alt="" />
}
在 Controller 中我有这个代码
[HttpPost]
public ActionResult MyAction(string text)
{
//TODO something with text and return value...
}
现在,如何发送新值,例如 id 到 Action 结果???谢谢
最佳答案
您使用 View 模型:
public class MyViewModel
{
public string Text { get; set; }
// some other properties that you want to work with in your view ...
}
然后将此 View 模型传递给 View :
public ActionResult MyAction()
{
var model = new MyViewModel();
model.Text = "foo bar";
return View(model);
}
[HttpPost]
public ActionResult MyAction(MyViewModel model)
{
// remove the Text property from the ModelState if you intend
// to modify it in the POST controller action or HTML helpers will
// use the old value
ModelState.Remove("Text");
model.Text = "some new value";
return View(model);
}
然后 View 被强类型化到这个模型:
@model MyViewModel
@using (Html.BeginForm("MyAction", "MyController"))
{
@Html.EditorFor(x => x.Text)
<input type="image" src="image.gif" alt="" />
}
关于asp.net-mvc-3 - 在 ActionResult 中传递多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11220829/