Редактирование и проверка сложной модели в ASP.NET MVC3 - PullRequest
1 голос
/ 24 ноября 2011

У меня есть приложение, использующее EntityFramework с SQL2008.Я использую DB-первый подход.Ниже показаны две сущности, с которыми у меня возникли проблемы:

http://imageshack.us/photo/my-images/339/modelfj.jpg/

часть Сотрудника Edit.cshtml

<div class="client_row">
    <label class="client_label">
        FirstName</label>
    @Html.TextBoxFor(model => model.FirstName, new { @class = "client_edit" })
    @Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="client_row">
    <label class="client_label">
        LastName</label>
    @Html.TextBoxFor(model => model.LastName, new { @class = "client_edit" })
    @Html.ValidationMessageFor(model => model.LastName)
</div>

    @Html.EditorFor(model => model.Account)

<div class="client_row">
    <span class="client_hr"></span>
    <label class="client_label">
        Email</label>
    @Html.TextBoxFor(model => model.Email, new { @class = "client_edit" })
    @Html.ValidationMessageFor(model => model.Email)
</div>

АккаунтФайл редактора (пользователь EditorFor)

@Html.HiddenFor(model => model.AccountID)
<div class="client_row">
    <label class="client_label">
        Login</label>
    @Html.TextBoxFor(model => model.Login, new { @class = "client_edit" })
    @Html.ValidationMessageFor(model => model.Login)
</div>
<div class="client_row">
    <label class="client_label">
        Password</label>
    @Html.PasswordFor(model => model.Password, new { @class = "client_edit password1" })

Мой частичный файл учетной записи, используемый для проверки

[MetadataType(typeof(Account_Validation))]
public partial class Account
{
}
[Bind(Exclude = "AccountID")]
public class Account_Validation
{
    [Required]
    [Remote("IsLoginAvailable", "Validation")]
    [Display(Name="Login")]
    public string Login { get; set; }

    [DataType(DataType.Password)]
    [Display(Name="Password")]
    public string Password { get; set; }

}

    @Html.ValidationMessageFor(model => model.Password)
</div>

Когда я пытаюсь создать сотрудника, все работаетхорошо.Я могу вставить в таблицу Employee и в таблицу Account.Я реализовал стандартную удаленную проверку (с использованием аннотаций данных) для проверки доступности имени для входа.

Проблема начинается, когда я пытаюсь отредактировать сотрудника.Валидация не позволила бы мне это сделать, так как вход в систему уже выполнен.Ну, это правда, но я не хочу это менять.Ребята, скажите, что я делаю не так?

1 Ответ

0 голосов
/ 24 ноября 2011

Что я хотел бы сделать, это создать ViewModel для Add Employee и Edit Employee, чтобы они оба наследовали от базовой модели представления

Это аналогичная ситуация для создания учетной записи и входа в систему, просто потому, что вы имеете дело с одной и той же сущностью, не означает, что вы должны использовать ту же логику проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...