7

由于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 为空的错误。
这是第二部分直到现在还没有解决:
这是我的行动:

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 再次设置为空值

4

1 回答 1

14

设置预设值的正确方法是通过模型将其传递(如果您设置它,MVC 似乎会忽略“值”参数)。为了完成你正在寻找的东西,在你的行动中:

public ActionResult MyAction() {
  var model = new MyModel {
    idv = myPresetId,
    etat = false
  };
  return View( model );
}

那么你不需要在你的视图中做任何事情,除了:

<%: Html.HiddenFor( model => model.idv ) %>
<%: Html.HiddenFor( model => model.etat ) %>
于 2012-04-27T22:17:59.300 回答