Asp.net mvc 在表单提交后将HttpGet中的模型项获取到HttpPost-ASP.NET MVC 3
我有点麻烦 我有一个HttpGet方法,如下所示:Asp.net mvc 在表单提交后将HttpGet中的模型项获取到HttpPost-ASP.NET MVC 3,asp.net-mvc,asp.net-mvc-3,razor,http-post,http-get,Asp.net Mvc,Asp.net Mvc 3,Razor,Http Post,Http Get,我有点麻烦 我有一个HttpGet方法,如下所示: [HttpGet] public ActionResult Form() { MyModel model = new MyModel(); model.something = "hi"; return View(model); } 在我的模型中: public string something { get; set; } [Display(Name="Something Else:")] public string
[HttpGet]
public ActionResult Form()
{
MyModel model = new MyModel();
model.something = "hi";
return View(model);
}
在我的模型中:
public string something { get; set; }
[Display(Name="Something Else:")]
public string somethingelse { get; set; }
在我看来,我有一个表格:
@model Path.To.Models.MyModel
@Html.TextBoxFor(model => model.somethingelse)
<input type="submit" value="Submit" />
有人能帮我吗?我需要在表单提交后从get to the POST获取数据,但返回空值
谢谢您需要将
某物的值
与表单一起提交,您可以使用隐藏输入:
@model Path.To.Models.MyModel
@Html.HiddenFor(model => model.something)
@Html.TextBoxFor(model => model.somethingelse)
<input type="submit" value="Submit" />
@model Path.To.Models.MyModel
@Html.HiddenFor(model=>model.something)
@Html.TextBoxFor(model=>model.somethingelse)
您需要将某物的值与表单一起提交,您可以使用隐藏的输入:
@model Path.To.Models.MyModel
@Html.HiddenFor(model => model.something)
@Html.TextBoxFor(model => model.somethingelse)
<input type="submit" value="Submit" />
@model Path.To.Models.MyModel
@Html.HiddenFor(model=>model.something)
@Html.TextBoxFor(model=>model.somethingelse)
您必须将“未更改的值”放在视图的隐藏字段中
@Html.HiddenFor(m => m.something)
否则就不会通过 您必须将“未更改的值”放在视图的隐藏字段中
@Html.HiddenFor(m => m.something)
否则就不会通过 因此,如果您想要一个完整的模型,您必须在视图中为模型中使用的每个字段添加一个隐藏字段?@CodeBlend。理论上是的,但是把所有的东西都放在隐藏的区域是一个不好的方法。当您执行post操作时,通常只需从数据库中再次获取实体,并仅更新所需的属性(如果要更新)。或者更好的方法是查看ViewModels。因此,如果您想要一个完整的模型,您必须为模型中使用的每个字段在视图中添加一个隐藏字段?@CodeBlend。理论上是的,但是把所有的东西都放在隐藏的区域是一个不好的方法。当您执行post操作时,通常只需从数据库中再次获取实体,并仅更新所需的属性(如果要更新)。或者更好,看看ViewModels。