Asp.net

設置 Html.Hiddenfor 的值

  • July 18, 2020

我有一個表格,可以送出投標。

@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 ..

甚至認為 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. 您應該只在與該視圖相關的操作中設置其值。

引用自:https://stackoverflow.com/questions/21074925