我正在尝试向我的 UserProfile 模型添加一个新字段“UserInput”。首先,我使用以下方法将该字段添加到我的 UserProfile 表中:
ALTER TABLE [Database].[dbo].[UserProfile]
ADD UserInput nvarchar(max) NULL
一切似乎都很好。然后我将它添加到我的模型中,生成了以下内容:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string FID { get; set; }
public string UserInput { get; set; }
}
但是当我尝试将它添加到我的视图中时,它给了我一条红色波浪线,并出现错误:
Error 1 'System.Collections.Generic.IEnumerable<FTv2.Models.UserProfile>' does not contain a definition for 'UserInput' and no extension method 'UserInput' accepting a first argument of type 'System.Collections.Generic.IEnumerable<FTv2.Models.UserProfile>' could be found (are you missing a using directive or an assembly reference?)
我错过了什么?我以前可以通过这种方式添加一个字段,也许有人可以告诉我这次我错过了什么?我也尝试运行代码并在尝试访问该页面时出错,如下所示:
Line 14: <legend>Edit</legend>
Line 15: <div class="editor-label">
Line 16: @Html.LabelFor(model => model.UserInput)
Line 17: </div>
Line 18: <div class="editor-field">
提前感谢您的帮助!
编辑:看起来问题在于我正在尝试从该视图编辑字段,因为如果我只尝试访问 item.UserInput 它会很好地返回它。这是代码不起作用的地方:
@model IEnumerable<FTv2.Models.UserProfile>
using (Html.BeginForm()) {
<fieldset>
<legend>Edit</legend>
<div class="editor-label">
@Html.LabelFor(model => model.UserInput)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.UserInput)
@Html.ValidationMessageFor(model => model.UserInput)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
但它适用于较低的部分:
@{ foreach (var item in Model) {
<p>User Input: @item.UserInputTwo</p>
}}