نمایش نتایج 1 تا 7 از 7

نام تاپیک: استفاده از دو ویو مدل جداگانه در یک ویو .

  1. #1

    استفاده از دو ویو مدل جداگانه در یک ویو .

    سلام

    من میخام در یک ویو دو تا ویومدل رو استفاده کنم ؟ ممنون میشم راهنمایی بفرمایید . الان دوتا ویو دارم یکی ویوی لاگین و ویوی بعدی رجیستر هست . و اکنون میخام هر دو در یک صفحه باشن منتها اینپوتهای مربوط به هر اکشن در پنل جدایی قرار داشته باشه .
    سپاس

  2. #2

    نقل قول: استفاده از دو ویو مدل جداگانه در یک ویو .

    من یک ویو مدل کلی ساختم بصورت زیر :
      public class ViewModel    {

    public LoginViewModel LoginModel { get; set; }
    public RegisterViewModel RegisterModel { get; set; }

    }


    بعد در ویوی لاگین کدها بصورت زیر هست :

    @model ViewModel

    <div>
    <form asp-action="Login" asp-controller="Account" asp-route-returnUrl="@ViewData["ReturnUrl"]" onsubmit="return validateForm()">
    <div asp-validation-summary="ModelOnly" class="text-danger"></div>
    <div class="form-group">
    <input asp-for="LoginModel.Email" id="InputEmail" class="form-control" />
    </div>
    <div class="form-group">
    <input asp-for="LoginModel.Password" id="InputPassword" class="form-control" />
    </div>
    <div class="form-group">
    <div class="checkbox">
    <label>
    <input asp-for="LoginModel.RememberMe" />
    </label>
    </div>
    </div>
    <div class="form-group">
    <input type="submit" value="ورود" class="btn btn-primary" />
    </div>
    </form>

    <form asp-action="Register" asp-controller="Account" asp-route-returnUrl="@ViewData["ReturnUrl"]" onsubmit="return validateForm()">
    <div asp-validation-summary="ModelOnly" class="text-danger"></div>
    <div class="form-group">

    <input asp-for="RegisterModel.Email" id="InputEmail" class="form-control" />

    </div>
    <div class="form-group">

    <input asp-for="RegisterModel.Password" id="InputPassword" class="form-control" />

    </div>
    <div class="form-group">

    <input asp-for="RegisterModel.ConfirmPassword" id="InputConfirmPassword" class="form-control" />

    </div>
    <div class="form-group">
    <input type="submit" value="ثبت نام" class="btn btn-success" />
    </div>
    </form>

    </div>


    ولی داده ای رو که به سمت اکشن ها میفرسته نال هست . ممنون میشم بید کجا رو اشتباه رفتم ؟

  3. #3
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    نقل قول: استفاده از دو ویو مدل جداگانه در یک ویو .

    در کنترولر باید این دو ویومدل وهله سازی شوند


    public ActionResult Login()
    {

    var model = new ViewModel
    {
    LoginModel=new LoginViewModel();

    RegisterModel=new RegisterViewModel();
    };
    return View(model);
    }

    البته میتونید بجای وهله سازی در کنترولر در سازنده کلاس ویومدل هم اینکار رو بکنید

    public class ViewModel {
    public ViewModel()
    {

    LoginModel=new LoginViewModel();

    RegisterModel=new RegisterViewModel();
    }

    public LoginViewModel LoginModel { get; set; }
    public RegisterViewModel RegisterModel { get; set; }


    }




  4. #4

    نقل قول: استفاده از دو ویو مدل جداگانه در یک ویو .

    بسیار بسیار تشکر

  5. #5

    نقل قول: استفاده از دو ویو مدل جداگانه در یک ویو .

    در ASP.NET Core بهترین راه اینه که از ViewComponent استفاده کنید. در VC می تونه یک مدل و ویوی خودش رو داشته باشه و در نهایت در هر صفحه ای بخواهید قرار میگیره.

    دوم اینکه به نام گداری مدل و قسمتهای مربوط به asp-for دقت کنید که باید دقیقا همخوانی داشته باشن.

    دقت کنید که تعریف مدل در بالای صفحه فقط جهت کمک به کد نویسی هست وگرنه در HTTP چنین چیزی نداریم. اطلاعات فرم توسط اتریبیوت name هر input به سرور ارسال میشه.
    از اونجایی که فرمهای ورود و ثبت نام کوچک است شما بجای تعریف کردن مدل و ... می توانید قسمت مربوط به asp-for رو حذف کنید (یعنی از ASP کمک نگیرید) و خودتون مقدار name رو مشخص کنید.

    بعدا در سرور سیستم Model Binding اطلاعات دریافتی از فرم رو درون شی LoginView یا RegisterView قرار میده.

  6. #6

    نقل قول: استفاده از دو ویو مدل جداگانه در یک ویو .

    نقل قول نوشته شده توسط hakim22 مشاهده تاپیک
    در ASP.NET Core بهترین راه اینه که از ViewComponent استفاده کنید. در VC می تونه یک مدل و ویوی خودش رو داشته باشه و در نهایت در هر صفحه ای بخواهید قرار میگیره.
    بسیار ممنون . یعنی اینکه مثه پارشال ویوها یک ویوکامپوننت register درست کنم و یک ویوکامپوننت login . سپس در صفحه مربوط به authentication قرارشون بدم ؟ دیگه لازم نیس یه ویومدل کلی برای دوتاشون تشکیل بدم ؟ویوکامپوننتها جایگزین پارشال ویو ها هستند ؟

  7. #7

    نقل قول: استفاده از دو ویو مدل جداگانه در یک ویو .

    پارشیال ویو فقط ویو هست. هر چند میتونه مدل داشته باشه اما اطلاعات این ویو از اکشن در کنترلر نمیاد. بلکه از درون ویوی مادر میاد.
    ویو کامپوننت نیاز به یک اکشن در سمت سرور داره و اطلاعاتش رو از اون میگیره. جایگزین Html.Action در MVC 5 شده.

    از هر دوی این ها می توانید برای هدف استفاده کنید. ظاهرا پارشیال ویو برای هدف شما در این بخش کفایت می کنه.

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: شنبه 09 بهمن 1389, 13:50 عصر
  2. پاسخ: 0
    آخرین پست: شنبه 09 بهمن 1389, 10:42 صبح
  3. سوال: استفاده از دو Session و Class در یک صفحه
    نوشته شده توسط htarahi در بخش PHP
    پاسخ: 2
    آخرین پست: دوشنبه 02 فروردین 1389, 18:18 عصر
  4. سوال: استفاده از دو فیلد پایگاه داده در یک ستون در گریدویو
    نوشته شده توسط meysampaknahad در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: سه شنبه 22 اردیبهشت 1388, 11:33 صبح
  5. استفاده از #C و VB.NET در یک پروژه
    نوشته شده توسط EHSH در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: جمعه 15 تیر 1386, 19:33 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •