由于Ethan Brown
我想Html.HiddenFor
用预设值设置助手的值,这部分是解决的.这是我的代码:
<%: Html.HiddenFor(model => model.idv, new { @value = ViewBag.id })%>
<%: Html.HiddenFor(model => model.etat, new { @value = "false" })%>
Run Code Online (Sandbox Code Playgroud)
但是当执行我的代码时,我得到的错误是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);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的观点页面:
<% using (Html.BeginForm("Reserver", "Home", FormMethod.Post, new { @class = "search_form" })) { %>
//some code textbox to fill
<input type="submit" value="Create" />
<% } %>
Run Code Online (Sandbox Code Playgroud)
所以当我点击提交按钮时,model.idv再次设置为空值
Eth*_*own 14
设置预设值的正确方法是通过模型传入(如果设置,MVC似乎忽略"value"参数).在你的行动中完成你正在寻找的东西:
public ActionResult MyAction() {
var model = new MyModel {
idv = myPresetId,
etat = false
};
return View( model );
}
Run Code Online (Sandbox Code Playgroud)
然后你不必在你的视图中做任何事情,除了:
<%: Html.HiddenFor( model => model.idv ) %>
<%: Html.HiddenFor( model => model.etat ) %>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15823 次 |
最近记录: |