Я пытаюсь добавить новое поле «UserInput» в мою модель UserProfile. Сначала я добавил поле в таблицу 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>
}}
Я не вижу 'UserInput' в вашей модели' UserProfile' только 'UserInputTwo' – haim770
Ваша модель именования UserInput в UserInputTwo. Я бы подумал, что модели понадобится, чтобы он назывался UserInput. Кроме того, может быть полезно увидеть остальную часть «Ошибка 1». – puddinman13
Жаль, что это была только опечатка в этом посте, она исправлена. – kgst