8

我有一个表格,可以提交投标。

@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" />

这样做的正确方法是什么?还是有其他方法可以将值传递给我的代码?我只需要 Postback 方法中的 Car_id ..

4

3 回答 3

20

甚至认为 Raphaël Althaus 所说的使用硬编码字符串是正确的,在重构过程中总是很痛苦。所以试试这个

@{
   Model.Car_id = ViewBag.car.id;
}

@Html.HiddenFor(model => model.Car_id)

通过这种方式,它仍然是您模型的一部分,并且更加清洁。

于 2014-01-12T13:31:52.947 回答
6

要么Car_id不是模型的一部分,则不能使用HiddenFor,但必须使用Hidden

就像是

@Html.Hidden("Car_id", ViewBag.car.id)

假设你在 ViewBag.car.id 中有一些东西,你得到的错误似乎意味着那里什么都没有。

或者它是你模型的一部分,你不应该需要一个ViewBag. 您应该只在与该视图相关的操作中设置其值。

于 2014-01-12T13:08:02.510 回答
1
@Html.HiddenFor(model => model.Car_id, htmlAttributes: new { @Value = ViewBag.Car_id })
于 2020-07-18T16:33:57.240 回答