0

我正在使用 asp.net MVC2。我在 javascript 内容的状态管理中遇到问题。我有一个图像映射,在其中单击图像的各个部分时,我将显示同一页面(使用参数重定向),其中包含一些参数,例如: Secure/BodyWork?view=7 并且基于参数视图中的值,我正在显示各种内容在页面上。在那个内容中,我有一些复选框,我选中它们并将其显示在 div 的左侧(选中一个)。问题是当我单击图像的另一部分(图像地图)时,它会将我重定向到具有不同“视图=?”的同一页面 值,但我失去了当前 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>
4

1 回答 1

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);
}

并在您的视图中 AJAXify 图像映射上的链接:

$(function() {
    $('#somecontainer a').click(function() {
        $('#someresultcontainer').load(this.href);
        return false;
    });
});
于 2010-10-26T07:13:01.107 回答