У меня есть пользовательская модель, например, так:
public class ViewModel
{
[DisplayName("Property One")]
string PropertyOne { get; set; }
[DisplayName("Property Two")]
string PropertyTwo { get; set; }
....
}
Когда я создаю новый строго типизированный вид на основе этой модели, я получаю следующее:
<% using (Html.BeginForm()) {%>
<%= Html.ValidationSummary(true) %>
<fieldset>
<legend>Fields</legend>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
Если я беруиз атрибута DisplayName
он все еще не работает.Я также заметил, что если я изменю модель и воссоздаю вид, основанный на этой модели, он не учитывает новые изменения.Как будто VS где-то кеширует модель, и единственный способ обновить ее - закрыть / заново открыть решение, а затем создать представление.
LogOnModel
в файле AccountModels.cs
, которыйсоздается по умолчанию практически одинаково (только у него меньше свойств) и это прекрасно работает.Может быть, я что-то упускаю при определении своей модели?Кажется, я не могу понять, что я делаю здесь неправильно.
Редактировать
Также заметили, если я попытаюсь вручную ввести разметку вида, например
<%@ Page ... Inherits="System.Web.Mvc.ViewPage<MySite.Models.ViewModel>" %>
...
<div class="editor-label">
<%= Html.LabelFor(model => model.PropertyOne) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.PropertyOne)%>
<%= Html.ValidationMessageFor(model => model.PropertyOne)%>
</div>
Я получаю ошибку компилятора CS1061: 'MySite.Models.ViewModel' does not contain a definition for 'PropertyOne'
.
В данный момент я пришел к выводу, что Visual Studio действительно содержит ошибки в этой области.Я на последней версии ( 9.0.30729.1 SP )