مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

استفاده از چند view model در یک ویو

  • جمعه 11 تیر 1395
  • 17:22
تشکر میکنم

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

پاسخ های این پرسش

تعداد پاسخ ها : 13 پاسخ
کاربر سایت

yamani8888

عضویت از 1393/04/15

  • جمعه 11 تیر 1395
  • 17:32

سلام دوست عزیز...

من این کار رو با پارشیال ویو انجام دادم. توی یک ویو میتونی از هر کنترل، هر اکنشی که نیاز داشتی رو فراخوانی کنی به شرطی که خروجی اکشنت پارشیال ویو باشه...

توسط این دستور:

 @Html.Action("StateLogin", "Account", new { area = "" })

 

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • جمعه 11 تیر 1395
  • 17:55

لطفا بیشتر راهنمایی کنید.اینو نوشتم ولی ارور میده...

توی کنترلر home:

     public PartialViewResult databaseResult()
        {
            var data = db.Estates.ToList();
            return PartialView(data);
        }

توی ویو index:

@Html.Action("databaseResult", "home",new {id="id",type= "estatetype",name="ownername" });

 

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • جمعه 11 تیر 1395
  • 18:28

یه جزوه ای چیزی در مورد @html.action کنید

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • جمعه 11 تیر 1395
  • 18:37

html.action خروجی اکشن رو تو چی میریزه؟؟؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 11 تیر 1395
  • 20:17

این لینک رو ببینید

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • شنبه 12 تیر 1395
  • 00:41

اینطوری نوشتم مشکل از کجاست؟؟؟

    public PartialViewResult databaseResult()
        {
            var data = db.Estates.ToList();
            return PartialView("index",data);
        }
@foreach (var item in @html.Action("databaseResult","home"))
{

}

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 12 تیر 1395
  • 08:28

در کد قرار داده شده کجا از ViewModel استفاده کردید ؟

چه اروری میده ؟

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • شنبه 12 تیر 1395
  • 16:03

اخرین کدی که نوشتم اینه، اما توی نوع مدل توی ویو ارور میگیره :

        public ActionResult Index()
        {
            var p = Tuple.Create(db.ExampleTables.ToList());
            return View(p);
        }

        public ActionResult Create()
        {

            var p = Tuple.Create(db.products.ToList());
            return View(p);
        }

ویو:

@using WebApplication4.Models
@model Tuple<ExampleTable>

<table>
    @foreach (var item in Model as Tuple<ExampleTable>)
    {
        <tr>
            <td>@item.Id</td>
            <td><input id="txtname" value="@item.Name" /></td>
            <td><input id="txtfamily" value="@item.Family" /></td>
            <td><button id="btn" value="@item.Id">edit</button> </td>
        
        </tr>
    }
</table>

 

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • شنبه 12 تیر 1395
  • 16:05

البته ببخشید نوع ویو رو نمیدونم باید چی انتخاب کنم که درست اینجا نشون بده

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 12 تیر 1395
  • 17:07

چرا Tuple استفاده کردید

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

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • شنبه 12 تیر 1395
  • 17:20

دوستان گفتن که بااین روش میشه تا 8 تا view model بزنی منم استفاده کردم

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 12 تیر 1395
  • 18:14

از دوستانتون بپرسید این 8 تا مدل رو چطوری میخواهند برگدونند به اکشن ؟

به نظر من بهتره از یک ViewModel استفاده کنید

کاربر سایت

msmaeelpoor

عضویت از 1394/09/29

  • یکشنبه 13 تیر 1395
  • 00:57

اقایون من کارم با ابن کد راه افتاد ساده س میزارمش .همچنین از راهنمایی و توجه دوستان تشکر میکنم :

controller:

  public ActionResult Index()
        {
            var p = Tuple.Create<IEnumerable<ExampleTable>,IEnumerable<product>>(db.ExampleTables,db.products);
            return View(p);
        

 

ویو:

<table>
    @foreach (var item in Model.Item1)
    {
        <tr>
            <td>@item.Id</td>
            <td><input id="txtname" value="@item.Name" /></td>
            <td><input id="txtfamily" value="@item.Family" /></td>
        </tr>
    }
</table>


<table>
    @foreach (var item in Model.Item2)
    {
        <tr>
            <td>@item.Id</td>
            <td><input id="txtname" value="@item.Name" /></td>
            <td><input id="txtfamily" value="@item.Price" /></td>
        </tr>
    }
</table>

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)