我试图按照本教程here,但试图在一个模式内执行它。我基本上调用我的模态内的索引视图(不知道这是否是最佳做法)但是,每次我点击一个头排序或其他任何模式消失,页面重定向到索引视图。这是可能的方式,我正在去做这件事,如果没有,也许有人可以建议一种替代解决方案,我对这些都是新鲜的!排序,筛选和分页模式内
这里是包含调用模态的按钮的部分。
@model IEnumerable<ReconciliationApp.Models.IReconciliationForm>
<div class="img-responsive center-block" id="formButtons">
<div>
<div class="btn-group row col-sm-12">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".browse-modal-lg">Browse</button>
</div>
<div class="btn-group row col-sm-12">
<button type="button" class="btn btn-primary">Modify</button>
<button type="button" class="btn btn-primary">Delete</button>
<button type="button" class="btn btn-primary">New</button>
</div>
</div>
</div>
<div class="modal fade browse-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Browse Members</h4>
</div>
<div class="container-fluid" style="padding-left: 50px;">
@Html.EditorForModel("Index")
</div>
</div>
</div>
</div>
这里是我的索引视图
@model IEnumerable<ReconciliationApp.Models.CSReconForm>
@{
ViewBag.Title = "Modal";
}
<h2>CSRecon Browse</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.ActionLink("Member ID", "Index", new { sortOrder = ViewBag.DateSortParm })
</th>
<th>
@Html.ActionLink("Brand ID", "Index", new { sortOrder = ViewBag.MemberSortParm })
</th>
<th>
@Html.ActionLink("First Name", "Index", new { sortOrder = ViewBag.BrandSortParm })
</th>
<th>
@Html.ActionLink("Last Name", "Index", new { sortOrder = ViewBag.FirstNameSortParm })
</th>
<th>
@Html.ActionLink("Processed By", "Index", new { sortOrder = ViewBag.LastNameSortParm })
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.MemberID)
</td>
<td>
@Html.DisplayFor(modelItem => item.BrandID)
</td>
<td>
@Html.DisplayFor(modelItem => item.FirstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.ProcessedBy)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
@Html.ActionLink("Details", "Details", new { id = item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id = item.Id })
</td>
</tr>
}
</table>
和正在使用
public class CSReconFormsController : ApplicationBaseController
{
private ReconciliationContext db = new ReconciliationContext();
private ApplicationDbContext adb = new ApplicationDbContext();
// GET: CSReconForms
public ActionResult Index(string sortOrder)
{
var usersContext = new ApplicationDbContext();
var users = usersContext.Users.Select(u => u.UserName).ToList();
ViewBag.Users = users;
ViewBag.Title = "Modal";
ViewBag.DateSortParm = String.IsNullOrEmpty(sortOrder) ? "dateCreated_desc" : "";
ViewBag.MemberSortParm = sortOrder == "MemberId" ? "memberId_desc" : "MemberId";
ViewBag.BrandSortParm = sortOrder == "BrandId" ? "brandId_desc" : "BrandId";
ViewBag.FirstNameSortParm = sortOrder == "FirstName" ? "firstName_desc" : "FirstName";
ViewBag.LastNameSortParm = sortOrder == "LastName" ? "lastName_desc" : "LastName";
var reconForms = from s in db.CSReconForms select s;
switch (sortOrder)
{
case "MemberId":
reconForms = reconForms.OrderBy(s => s.MemberID);
break;
case "memberId_desc":
reconForms = reconForms.OrderByDescending(s => s.MemberID);
break;
case "BrandId":
reconForms = reconForms.OrderBy(s => s.BrandID);
break;
case "brandId_desc":
reconForms = reconForms.OrderByDescending(s => s.BrandID);
break;
case "FirstName":
reconForms = reconForms.OrderBy(s => s.FirstName);
break;
case "firstName_desc":
reconForms = reconForms.OrderByDescending(s => s.FirstName);
break;
case "LastName":
reconForms = reconForms.OrderBy(s => s.LastName);
break;
case "lastName_desc":
reconForms = reconForms.OrderByDescending(s => s.LastName);
break;
case "dateCreated_desc":
reconForms = reconForms.OrderByDescending(s => s.WhenCreated);
break;
default:
reconForms = reconForms.OrderBy(s => s.WhenCreated);
break;
}
return View(reconForms.ToList());
}
...
}
如果有其他任何你认为你可能可能是有用我的控制器的一部分,随时问问!提前致谢!
如果你想用一个模式,并保持在同一页上,然后用ajax到'sortOrder'值张贴到返回的局部视图的方法,并在其成功的回调更新DOM(不是做重定向的链接) –