سلام دوستان من میخوام چند قسمت صفحه ویو م رو از اطلاعات چندتا جدول به صورت جداگانه پر کنم . مثلا توی یه قسمت از صفحه همه کالا ها رو از جدول کالا بگیرم و نمایش بدم ، توی یه قسمت دیگه اطلاعات جدول کالاهای پر فروش رو نمایش بدم و توی یه قسمت دیگه اطلاعات جدول کالای پر بازدید رو بگیرم و نمایش بدم. دوستان چه روشی باید انجام بدم؟ با view model فقط تونستم یکی شو نمایش بدم
سلام دوست عزیز...
من این کار رو با پارشیال ویو انجام دادم. توی یک ویو میتونی از هر کنترل، هر اکنشی که نیاز داشتی رو فراخوانی کنی به شرطی که خروجی اکشنت پارشیال ویو باشه...
توسط این دستور:
@Html.Action("StateLogin", "Account", new { area = "" })
لطفا بیشتر راهنمایی کنید.اینو نوشتم ولی ارور میده...
توی کنترلر home:
public PartialViewResult databaseResult() { var data = db.Estates.ToList(); return PartialView(data); }
توی ویو index:
@Html.Action("databaseResult", "home",new {id="id",type= "estatetype",name="ownername" });
یه جزوه ای چیزی در مورد @html.action کنید
html.action خروجی اکشن رو تو چی میریزه؟؟؟
این لینک رو ببینید
اینطوری نوشتم مشکل از کجاست؟؟؟
public PartialViewResult databaseResult() { var data = db.Estates.ToList(); return PartialView("index",data); }
@foreach (var item in @html.Action("databaseResult","home")) { }
در کد قرار داده شده کجا از ViewModel استفاده کردید ؟
چه اروری میده ؟
اخرین کدی که نوشتم اینه، اما توی نوع مدل توی ویو ارور میگیره :
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>
البته ببخشید نوع ویو رو نمیدونم باید چی انتخاب کنم که درست اینجا نشون بده
چرا Tuple استفاده کردید
راستش رو بخواهید از کدهاتون سر در نمیارم
دوستان گفتن که بااین روش میشه تا 8 تا view model بزنی منم استفاده کردم
از دوستانتون بپرسید این 8 تا مدل رو چطوری میخواهند برگدونند به اکشن ؟
به نظر من بهتره از یک ViewModel استفاده کنید
اقایون من کارم با ابن کد راه افتاد ساده س میزارمش .همچنین از راهنمایی و توجه دوستان تشکر میکنم :
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>
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)