我正在使用asp.net MVC2。我正面临着javascript内容的状态管理问题。 我有一个图像映射,其中点击图像的各个部分我显示相同的页面(重定向参数)与一些参数,如:Secure / BodyWork?view = 7 并且根据参数视图中的值,我在页面上显示各种内容。在那个内容中,我有一些复选框,我检查并在div的左侧显示它(已选中)。 问题是,当我点击图像的另一部分(图像地图)时,它会将我重新映射到具有不同“view =?”的同一页面。值,但我松了我当前div的状态(包含上一页的选中复选框的名称)。
我的遗产行是这样的:
Inherits="System.Web.Mvc.ViewPage<List<WBAC.Models.BodyWorkModel>>"
控制器包含:
public ActionResult BodyWork(string view)
{
SecureModelService service = new SecureModelService();
return View(service.ListBodyWork(view));
}
[HttpPost]
public ActionResult BodyWork(BodyWorkModel model1)
{
//some code
}
我尝试过隐藏字段,所以我在其中放置了当前页面复选框的名称,但当我点击图像地图时,由于页面重定向到当前页面,当然会丢失值。
我也试过使用ajax.beginform,但它也无法正常工作,因为我们在点击图片地图时重定向页面(使用不同参数的相同页面,如:view = 3 / view = 4)。
请建议我应该改变什么以及如何做。
由于
目标div中的代码:
<div class="damageAreaMid" id="dvdamageAreaMid">
<% foreach (var item in Model)
{ %>
<div class="area">
<h2>
<%: item.Component %></h2>
<% Html.RenderPartial("~/Views/Shared/UCWorkArea.ascx", item.VehicleOption(item.ComponentID, item.Component));%>
</div>
<% } %>
</div>
答案 0 :(得分:1)
您可以使用AJAX并仅刷新需要刷新的页面部分。
public ActionResult BodyWork(string view)
{
SecureModelService service = new SecureModelService();
return View(service.ListBodyWork(view));
}
public ActionResult BodyWork(BodyWorkModel model)
{
//some code
return PartialView(model);
}
在您的视图中AJAX化图像地图上的链接:
$(function() {
$('#somecontainer a').click(function() {
$('#someresultcontainer').load(this.href);
return false;
});
});