SORU
21 Ocak 2011, Cuma


Birden çok model görünümünde

Bir görünümde 2 model var. Sayfa LoginViewModel RegisterViewModel de içerir.

Eg.

public class LoginViewModel
{
    public string Email { get; set; }
    public string Password { get; set; }
}

public class RegisterViewModel
{
    public string Name { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
}

Bu 2 görüşe sahip olan başka bir görünüm yapmak gerekir?

public BigViewModel
{
    public LoginViewModel LoginViewModel{get; set;}
    public RegisterViewModel RegisterViewModel {get; set;}
}

Doğrulama öne görünüm, bu ViewModels neden ihtiyacım olduğunu getirilecek nitelikler ihtiyacım var.

(BigViewModel) olmadan başka bir yolu böyle değil:

 @model ViewModel.RegisterViewModel
 @using (Html.BeginForm("Login", "Auth", FormMethod.Post))
 {
        @Html.TextBoxFor(model => model.Name)
        @Html.TextBoxFor(model => model.Email)
        @Html.PasswordFor(model => model.Password)
 }

 @model ViewModel.LoginViewModel
 @using (Html.BeginForm("Login", "Auth", FormMethod.Post))
 {
        @Html.TextBoxFor(model => model.Email)
        @Html.PasswordFor(model => model.Password)
 }

CEVAP
21 Ocak 2011, Cuma


Birçok yolu vardır...

  1. senin BigViewModel ile yapın:

    @model BigViewModel    
    @using(Html.BeginForm()) {
        @Html.EditorFor(o => o.LoginViewModel.Email)
        ...
    }
    
  2. 2 ek görünümler oluşturabilirsiniz

    Giriş.cshtml

    @model ViewModel.LoginViewModel
    @using (Html.BeginForm("Login", "Auth", FormMethod.Post))
    {
        @Html.TextBoxFor(model => model.Email)
        @Html.PasswordFor(model => model.Password)
    }
    

    ve kayıt.cshtmlaynı şey

    oluşturulduktan sonra ana görünümünde bunları işlemek ve onları geçmek viewmodel/viewdata

    bu gibi olabilir:

    @{Html.RenderPartial("login", ViewBag.Login);}
    @{Html.RenderPartial("register", ViewBag.Register);}
    

    ya

    @{Html.RenderPartial("login", Model.LoginViewModel)}
    @{Html.RenderPartial("register", Model.RegisterViewModel)}
    
  3. ajax web sitenizin parçaları kullanarak daha bağımsız hale gelir

  4. iframes, ama muhtemelen bu durumda değil

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CrazyMan

    CrazyMan

    14 Mayıs 2008
  • Machinima

    Machinima

    17 Ocak 2006
  • TheRightTire

    TheRightTire

    14 EKİM 2009