“我有一个控制器,它有下拉列表和更改DDL绑定再次调用索引视图并返回加载内容的部分视图: 索引控制器:
public ActionResult Index(ProductEntity Prod, string CategoryId)
{
ViewBag.Category = new SelectList(ObjStore.categories, "CategoryId", "CategoryName");
if (Request.IsAjaxRequest())
{
var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId);
return PartialView("_ProductMaster", model);
}
else if (CategoryId != "" && CategoryId !=null)
{
var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId);
return PartialView("_ProductMaster", model);
}
return View();
}
部分视图:
@model IEnumerable<StoreManagement.Models.ProductEntity>
<div id="Products">
@if (Model != null)
{
<table style="width:100%;">
<tr>
<th>Product Name </th>
<th>Max Qty</th>
<th>Min Qty</th>
<th>Edit</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.ProductName.ToString()</td>
<td>@item.MaxQty</td>
<td>@item.MinQty</td>
<td>@Html.ActionLink("Edit","EditProduct",new {ProductId=@item.ProductId},null)</td>
</tr>
}
</table>
}
</div>
在上面我有编辑操作链接,它重定向到编辑视图,在这个页面上我有返回操作链接,它重定向到索引控制器,查询字符串为CategoryId,我在选择Dropdownlist时使用。
现在我想用CategoryId作为查询字符串加载索引视图。
'其他代码适用于此'
if (Request.IsAjaxRequest())
{
var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId);
return PartialView("_ProductMaster", model);
}
else if (CategoryId != "" && CategoryId !=null)
{
var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId);
return PartialView("_ProductMaster", model);
}
但它只返回部分视图。我希望该视图加载其_layout页面。或者,如果我们在URl中有查询字符串,或者让Request.IsAjaxRequest()为true,有没有办法调用DDL的onchange事件。“
答案 0 :(得分:0)
如果您想要包含布局页面aswel,您应该返回视图而不是PartialView
if (Request.IsAjaxRequest())
{
var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId);
return View("_ProductMaster", model);
}
else if (CategoryId != "" && CategoryId !=null)
{
var model = ObjStore.products.Where(x => x.CategoryId == Prod.CategoryId);
return View("_ProductMaster", model);
}