【发布时间】:2019-08-03 06:19:41
【问题描述】:
我正在使用如下模型类
public class Question
{
public long ID { get; set; }
public int QuestionNo { get; set; }
public string Title { get; set; }
public QuestionTypes QuestionType { get; set; }
public List<Answer> Answers { get; set; }
}
我在视图中创建了一个文本框,如下所示。
@Html.TextBoxFor(Model => Model.ID);
它使用提供的值预先填充ID,这不是我想要的。我希望文本框在呈现时为空,并且在POST 期间文本框的值应由 ID 属性读取。我怎样才能做到这一点,或者我的设计有问题?
【问题讨论】:
-
“它使用提供的值预填充 ID” - 这就是模型绑定应该如何工作的。如果你想要一个空的
<input />,你需要使用一个可以为空的类型并将其保留为空。 -
@TiesonT。问题 ID 不能为空,这是将答案文本与问题映射的 ID。
-
我没有看到“答案文本”的模型属性 - 这是正确的模型吗?
-
你的 ID 属性不是
nullable所以如果你想保持它为空,那么你应该为 id 属性添加?可空符号,即public long? ID { get; set; } -
如果我正在关注您正在尝试做的事情,我认为您可能需要一个隐藏字段来跟踪问题 ID。 @Html.HiddenFor(Model => Model.ID);
标签: c# asp.net asp.net-mvc razor