چطوری میتونم با ایتفاده از 3 موجودیت ( جدول ) یک فرم ورود مطلب بسازم که گروه مطلب و دسته بندی بصورت آبشاری باز شود
یعنی با انتخاب گروه دسته بندی های که گروه مادر آنها انتخاب شده در option پایین نمایش داده شود
بصورت ajax اگر امکانش هست توضیح بدین. سپاس
اول جداولتو بساز و اطلاعات رو داخلش قرار بده ، کلید هارو درست تعریف کن و بعد برای CaseCading به روش زیر عمل کن:
( برای این مثال از جدول NorthWind استفاده میکنیم)
1) یه پارشال ویو درنظر بگیر برای Category که بصورت زیر باشه
public PartialViewResult Category() { var cat = (from item in db.Categories select new SelectListItem { Value = item.CategoryID.ToString(), Text = item.CategoryName }).ToList(); ViewBag.cat = cat; return PartialView(); }
توضیح : مقدار Category رو بصورت ViewBag ارسال میکنه ، ما میخایم بصورت یه DropDown از این ViewBag استفاده کنیم
2) یه پارشال ویو دیگه بنویس برای DropDown دومی که با استفاده از مورد فیلتر پارشال ویو اولی برای نمایش لیست Product ها باشه
public PartialViewResult Product(int CategoryID) { var prod = (from item in db.Products where item.CategoryID == CategoryID select new SelectListItem { Text=item.ProductName,Value = item.ProductID.ToString() }).ToList(); ViewBag.prod = prod; return PartialView(); }
توضیح : توجه داشته باش، تو پارشال ویو دومی ورودی داره که CategoryID می باشد.
خوب برای هر کدوم از پارشال ویو ها View بساز بصورت Empty و مقادیر پایینو بترتیب تو View های مربوطه قرار بده:
@Html.DropDownList("Category", (List<SelectListItem>)ViewBag.cat, new { @class = "form-control", id = "Category" })
توضیح: این ویو مربوط به پارشال ویو اولیه که یک DropDown می سازه از ViewBag.Cat که پاس دادیم.
@Html.DropDownList("Product", (List<SelectListItem>)ViewBag.prod, new {@class="form-control", id="Product" })
توضیح : همانند بالایی این هم یه ویو Empty که فقط یه Dropdown از ViewBag ما میسازه
خوب حالا کافیه تو صفحه Index یا هرجا که میخای پارشال ویو هارو فراخوانی کنی.
اولی رو بدون DataSend و دومی رو با Datasend و مقدار CategoryID که از انتخاب پارشال ویوی اولی میگیری با استفاده از Ajax بصورت زیر:
<script> $(document).ready(function () { $("#Category").change(function () { var SendingData = "CategoryID=" + $("#Category").val(); var url = '@Url.Action("Product", "CasCade")'; $.get(url, SendingData, function (data) { $("#dvProduct").html(data); $(document).on("change", "#Product", function () { //dvOrderDetails var d = "ProductID=" + $("#Product").val(); var u = '@Url.Action("OrderDetails", "CasCade")'; $.get(u, d, function (rd) { $("#dvOrderDetails").html(rd); }); }); }); }); }); </script>
برای نمایش جستجو ها و DropDown ها یه جدول بصورت زیر بساز
<table class="tbl table table-bordered table-striped table-hover " > <tr> <td>Category</td> <td> @Html.Action("Category", "CasCade") </td> </tr> <tr> <td> Product </td> <td> <div id="dvProduct"> <select class="form-control"> </select> </div> </td> </tr> <tr> <td colspan="2"> Order Details </td> </tr> <tr> <td colspan="2"> <div id="dvOrderDetails"></div> </td> </tr> </table>
سلام من هم همین سوال رو داشتم من میخوام در قالب یک فرم ارسال آگهی باشد و به صورت post ارسال شود.
یک سوال دیگه!!! من میخوام view از دو یا چند Modelپیروی کنه!!!!!به جز View Model یه راه دیگه بگید لطفاااااا
بهترین راه همون ViewModel است میتونید از tuple هم استفاده کنید که جالب نیست
آگر امکانش هست یک نمونه معرقی کنید که از چند مدل در یک ویو استفاده شده باشد. سپاس.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)