如果設置了某個變量,我希望某個字段是文本框,如果不是,我希望該字段只顯示該值,但該值不可編輯。如果其他邏輯在Razor DisplayFor vs TextBoxFor MVC4
我把一些如果其他邏輯到我的意見和價值將不會顯示。我在這裏錯過了什麼嗎?
@{
if (isFlagSet) {
Html.TextBoxFor(m => m.HostpitalFinNumber, new { @Value = Model.HostpitalFinNumber });
Html.ValidationMessageFor(m => m.HostpitalFinNumber);
}
else {
Html.DisplayTextFor(m => m.HostpitalFinNumber);
}
}
更新...
我改變了我的代碼
@if (isFlagSet) {
Html.TextBoxFor(m => m.HostpitalFinNumber);
Html.ValidationMessageFor(m => m.HostpitalFinNumber);
}
else {
Html.DisplayFor(m => m.HostpitalFinNumber);
}
以下是正在生成的HTML。注意輸入值是如何寫入手機而不是醫院的。很確定爲什麼會這樣。
<tr><td>
<label for="Phone">Phone</label>
</td>
<td>
<input Value="4124880798" id="Phone" name="Phone" type="text" value="4124880798" />
</td></tr>
<tr><td>
<label for="HostpitalFinNumber">HostpitalFinNumber</label>
</td>
<td>
</td></tr>
ANSWER
我忘了把@我的HTML輔助面前,擺脫了分號。
DisplayFor默認情況下不會創建輸入標籤。如果您想要輸入,請使用另一個TextboxFor。 –