这部分由于Ethan Brown
而解散了
我想用预设值设置Html.HiddenFor
助手的值
这是我的代码:
<%: Html.HiddenFor(model => model.idv, new { @value = ViewBag.id })%>
<%: Html.HiddenFor(model => model.etat, new { @value = "false" })%>
但是当执行我的代码时,我得到的错误是model.idv和modele.etat为null。
到目前为止,这是第二部分没有解决的问题:
这是我的行动:
public ActionResult Reserver(string id)
{
var model = new Models.rservation
{
idv = id,
etat = false
};
return View(model);
}
[HttpPost]
public ActionResult Reserver(Models.rservation model)
{
if (ModelState.IsValid)
{
entity.AddTorservation(model);
entity.SaveChanges();
return View();
}
else
{
return View(model);
}
}
这是我的观点页面:
<% using (Html.BeginForm("Reserver", "Home", FormMethod.Post, new { @class = "search_form" })) { %>
//some code textbox to fill
<input type="submit" value="Create" />
<% } %>
因此,当我点击提交按钮时,model.idv再次设置为空值
答案 0 :(得分:14)
设置预设值的正确方法是通过模型传递(如果设置,MVC似乎忽略“value”参数)。在你的行动中完成你正在寻找的东西:
public ActionResult MyAction() {
var model = new MyModel {
idv = myPresetId,
etat = false
};
return View( model );
}
然后您不必在视图中执行任何操作,除非:
<%: Html.HiddenFor( model => model.idv ) %>
<%: Html.HiddenFor( model => model.etat ) %>