2010-11-12 5 views
0

Я пытаюсь создать представление в ASP.NET MVC, в котором различные части модели просмотра модифицируются отдельно для захвата намерения.Asp.Net MVC View с множественным строго типизированным частичным представлением с частичным отображением на частичный просмотр

Например, модификация на пользователях может быть сделана одним из следующих способов в то время:

  1. Изменить имя,
  2. Изменить Email,
  3. Изменить пароль,
  4. Изменить статус
public class UserEditViewModel 
{ 
    public string DepartmentDetails { get; set; } 
    [HiddenInput(DisplayValue = false)] 
    public Guid UserId { get; set; } 

    public class UserNameEditModel 
    { 
     [Required(ErrorMessage = "Name Required")] 
     [DisplayName("Name")] 
     [StringLength(50, ErrorMessage = "Name must be less than or equal to 50 characters")] 
     public string Name { get; set; } 
    } 

    public class UserPasswordEditViewModel 
    { 
     [Required(ErrorMessage = "Password cannot be Empty")] 
     [DisplayName("Password")] 
     public string Password { get; set; } 

     [Required(ErrorMessage = "Confirm Password is Required")] 
     [DisplayName("Confirm Password")] 
     public string ConfirmPassword { get; set; } 
    } 

    public class UserStatusEditViewModel 
    { 
     [Required(ErrorMessage = "Status Required")] 
     [DisplayName("Status")] 

     public bool Status { get; set; } 

     [Required(ErrorMessage = "Comment Required")] 
     [DisplayName("Comment")] 
     public string Comment { get; set; } 
    } 
} 

Что я хочу сделать, это создать строго типизированные частичные представления на основе outerclass + один из внутренних классов. Каждый частичный вид будет иметь свое собственное представление формы, которая будет иметь действие указал, на отдельные действия контроллера (редактирования пароля, editname, editstatus ...)

Я попытался t0 создать представление на основе OuterClass + один из внутренних классов , что я получил в автоматическом мастере создания компоновщика, но он не смог разрешить ДепартаментДетали, а также UserID для внешнего класса.

  1. Является ли то, что я хочу сделать возможным в ASP.NET MVC 2/3 Beta?
  2. Я буду использовать Ajax позже для улучшения, но я бы хотел сделать столько сообщений без него.
  3. Если есть возможность иметь отдельные формы на частичном просмотре, работайте независимо, то я предполагаю, что одним из решений может быть идентификатор пользователя и детали на каждом из EditviewModel, а также иметь представление, использующее одну единственную ViewModel.

ответ

1

Я предлагаю вам иметь 1 модель для создания вида и разных моделей действий (смена прохода и т. Д.).

По-моему, было бы проще. Вы можете собрать все свойства в одном классе для отображения вида с различными формами, но отделить их от своих действий.

+0

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

0

Я не уверен, что полностью понимаю вопрос ... однако, если все, что вы пытаетесь сделать, это отправить те же данные формы различным действиям, на основе которых пользователь нажимает ... Я предлагаю вам посмотреть здесь : How do you handle multiple submit buttons in ASP.NET MVC Framework?

Основываясь на одном из ответов в потоке, который я связал выше, я создал атрибут, который позволяет MVC перенаправлять отправку формы на правильное действие.

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

Смежные вопросы