2015-04-16 3 views
2

Я создал проект MVC с использованием кода First From A Database. Я добавил аннотации данных к моим классам моделей, например. [DisplayName («Идентификатор запроса на управление»)] и [ScaffoldColumn (false)].MVC 5 аннотации данных не строительные леса

Я выбрал Добавить контроллер MVC 5 с представлениями, используя Entity Framework, выбранный класс модели, класс контекста данных и левый раздел «Сгенерировать представления», «Справочные библиотеки сценариев» и «Использовать страницу макета». Все файлы и папки добавлены правильно.

Проблема возникает при запуске приложения. Представления индекса, деталей и редактирования отображают мои длинные имена свойств, а не имена, которые я дал свойствам, используя аннотацию данных DisplayName. Кроме того, свойства, объявленные как ScaffoldColumn (false), отображаются на всех трех представлениях.

Я вставить код из одного из моих классов модели ниже:

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.ComponentModel.DataAnnotations.Schema; 
using System.Data.Entity.Spatial; 
using System.ComponentModel; 


[Table("RulingRequest")] 
public partial class RulingRequest 
{ 

[DatabaseGenerated(DatabaseGeneratedOption.None)] 
[DisplayName("Ruling Request ID")] 
public int RulingRequestID { get; set; } 

[StringLength(9)] 
[ScaffoldColumn(false)] 
public string CreatedBy { get; set; } 

[DisplayName("Ruling Request Group ID")] 
[StringLength(3)] 
public string RulingRequestGroupID { get; set; } //FK 

[DisplayName("Type")] 
public int? RulingRequestTypeID { get; set; } //FK 

[StringLength(50)] 
[DisplayName("First Name")] 
public string FirstName { get; set; } 

Я новичок и искал межсеть за помощь, но я не встречал подобную ситуацию, как у меня ,

+1

Опубликовать одно из изображений –

+0

Прекратить использование моделей данных в вашем представлении и начать использовать модели просмотра. [Что такое модель просмотра в MVC] (http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc) –

+0

Я попытался добавить изображение одного из представлений, но у меня возникла ошибка, когда пытаясь сохранить мой отредактированный вопрос, вы должны иметь репутацию не менее 10 человек, чтобы опубликовать изображение. – MikeNaka

ответ

0

Попробуйте вместо этого: [Display(Name = "Ruling Request ID")]

попробовать Также это, чтобы предотвратить связывание:

[Bind(Exclude = "CreatedBy")] 
public partial class RulingRequest 
{ 
+0

Я попробовал [Display (Name = "Request Request ID")], но это не сработало. Спасибо за идею, хотя! Странная часть заключается в том, что моя [ScaffoldColumn (false)] теперь работает. – MikeNaka

+0

Он должен работать. проблема тогда не в аннотации. убедитесь, что ненавязчивая java включена на вашей странице. –

+0

Я добавил jquery.validate и jquery.validate.unobtrusive в BundleConfig и Shared view, _Layout.cshtml, через Scripts.Render. Я проверил исходный код веб-страницы Details, и оба сценария показаны. Странно, что некоторые из моих свойств отображают то, что у меня есть, как отображаемое имя, например. Имя, фамилия, адрес 2, дата принятия решения и т. Д. Я ценю ваши комментарии, так как я не добавил эти 2 скрипта в функцию Scripts.Render. – MikeNaka

0

Я предлагаю сначала проверить ли вы включили необходимые файлы JavaScript для ненавязчивой проверки в правильном порядке, и что будет сделайте валидацию успешной на стороне клиента. проверить ответ here

+0

Я добавил jquery.validate и jquery.validate.unobstrusive в BundleConfig.cs. – MikeNaka

+0

Также добавили их в общий вид _Layout в операторах @ Scripts.Render. – MikeNaka

0

Перед созданием представления необходимо предоставить атрибут ScaffoldColumnAttribute до свойства модели. Леса не будут создавать DisplayFor/EditFor для этого конкретного свойства и любых других свойств, которые были бы отнесены. Если вы предоставите атрибут post-creation, свойства будут по-прежнему отображаться в форме, так как уже есть средство DisplayFor/EditFor Html Helper, созданное для этого свойства модели.