我有一个表格,要提交投标。
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "Login" }))
{
@Html.ValidationSummary(true, "Gelieve alle velden in te vullen.")
@Html.LabelFor(m => m.Bid)<br />
@Html.TextBoxFor(m => m.Bid)<br />
@Html.LabelFor(m => m.Name)<br />
@Html.TextBoxFor(m => m.Name)<br />
@Html.LabelFor(m => m.Email)<br />
@Html.TextBoxFor(m => m.Email)<br />
@Html.HiddenFor(model => model.Car_id, new { value = ViewBag.car.id })
<input type="submit" value="Bied" class="button" />
}
我想将 hiddenfor 的值设置为汽车的 id(我用 viewbag 得到它),但它不起作用,如下所示:
<input data-val="true" data-val-number="The field Car_id must be a number." data-val-required="Het veld Car_id is vereist." id="Car_id" name="Car_id" type="hidden" value="" /> <input type="submit" value="Bied" class="button" />
正确的方法是什么?或者还有其他方法可以将值传递给我的代码吗?我只需要回发方法中的Car_id。
甚至认为Raphaël Althaus所说的正确使用硬编码字符串在重构过程中总是很痛苦。 所以试试这个
@{
Model.Car_id = ViewBag.car.id;
}
@Html.HiddenFor(model => model.Car_id)
这样,它仍将是您模型的一部分,并且更加干净。
要么
Car_id
不是模型的一部分,那么不能使用HiddenFor
,但必须使用Hidden
类似的东西
@Html.Hidden("Car_id", ViewBag.car.id)
假设你 ViewBag.car.id 有东西,你得到的错误似乎意味着里面什么都没有。
或者它是您模型的一部分,您不需要ViewBag
。您应该在与该视图相关的操作中设置其值。
@Html.HiddenFor(model => model.Car_id, htmlAttributes: new { @Value = ViewBag.Car_id })