2012-04-18 2 views
1

У меня есть следующий вид, который не может быть проверен на Title и NewsContent. Работа надписи работает, но не NewsContent. Как я могу это исправить.Проблемы с проверкой MVC3

@model Foo.NewsViewModel 
@{ 
    ViewBag.Title = "Create"; 
} 



@using (Html.BeginForm("Create", "News", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    <div> 
     <fieldset> 
      <legend>Category Information</legend> 
      <div class="editor-label"> 
       @Html.LabelFor(m => m.News.Title) 
      </div> 

      <div class="editor-field"> 
       @Html.TextBoxFor(m => m.News.Title) 
       @Html.ValidationMessageFor(m => m.News.Title) 
      </div> 
       <div class="editor-label"> 
       @Html.LabelFor(m => m.News.NewsContent) 
      </div> 

      <div class="editor-field" id="container"> 
       @Html.TextAreaFor(m => m.News.NewsContent) 
       @Html.ValidationMessageFor(m => m.News.NewsContent) 
      </div> 
      <div class="editor-label"> 
       @Html.LabelFor(m => m.News.Thumbnail) 
      </div> 

      <div class="editor-field"> 
       <input type="file" name="files" id="thumbnail" /> 
      </div> 

      <div class="editor-label"> 
       @Html.LabelFor(m => m.News.Image) 
      </div> 

      <div class="editor-field"> 
       <input type="file" name="files" id="original" /> 
      </div> 

      <div class="editor-label"> 
       @Html.Label("SelectedCategoryId") 
      </div> 

      <div class="editor-field"> 
       @Html.DropDownListFor(m => m.SelectedCategoryId, Model.Categories) 
      </div> 

      <div class="editor-label"> 
       Publish 
      </div> 

      <div class="editor-field"> 
       @Html.CheckBoxFor(m => m.News.Published, new { @checked = "checked" }) 
      </div> 

      <p> 
       <input type="submit" value="Create" /> 
      </p> 
     </fieldset> 
    </div> 
} 

и вот модель |:

public class News : IStorable 
    { 
     [Required] 
     [Display(Name = "Title")] 
     public virtual string Title { get; set; } 

     [Required] 
     [Display(Name = "Content")] 
     public virtual string NewsContent { set; get; } 
...... 
+0

является содержание новостей площадь RichText как FCKEditor и т.д. –

+0

это ы просто текстовое поле прямо сейчас Б.Т. я буду добавлять WYSIWYG – DarthVader

+0

который Entity Framework «аромат» вы используете? – NSGaga

ответ

3

Издание: Работы проверки Название но не NewsContent.

Validations не работает, из-за использования Html.TextAreaFor помощника() для визуализации свойство «NewsContent»,

Вот код, чтобы сделать его работу:

Изменить модель как:

Украсить свойство NewsContent атрибутом [DataType] и установить тип данных как «MultilineText». Это будет означать, что редактор этого свойства должен быть многострочным текстовым вводом.

public class News : IStorable 
{ 
    [Required] 
    [Display(Name = "Title")] 
    public virtual string Title { get; set; } 

    [Required()] 
    [Display(Name = "Content")] 
    [DataType(DataType.MultilineText)] 
    public virtual string NewsContent { set; get; } 
    //.... 
} 

В вид использования Html.EditorFor() помощнике вместо Html.TextAreaFor() для имущества 'News.NewsContent'.

//.... 
<div class="editor-label"> 
    @Html.LabelFor(m => m.News.NewsContent) 
</div> 

<div class="editor-field" id="container"> 

    @*@Html.TextAreaFor(m => m.News.NewsContent)*@ 

    @Html.EditorFor(m => m.News.NewsContent) 
    @Html.ValidationMessageFor(m => m.News.NewsContent) 
</div> 
//.... 
+0

работал. здорово. Благодарю. – DarthVader