感谢 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再次被设置为null值。
Reserver(string)
动作中你设置了一个不为空的值到idv
中吗?如果你尝试调用该动作而没有提供参数,idv
将会为空,那么就不应该有什么意外情况了。 - Ethan Brownreturn View(viewModel)
这行代码上设置一个断点,看一下viewModel.idv
是否是您期望的值。如果是,则查看呈现后的HTML页面的源代码。您应该会看到带有正确value
参数的隐藏输入框。如果没问题,那么可能是您的视图出了问题...这可能是您想要在问题中包含的下一个内容。 - Ethan BrownHtml.HiddenFor(model.idv)
放在Html.BeginForm
里面...否则,在将其传回到HttpPost
控制器时,模型将不会更新该值。 - Ethan Brown