Государственное управление javascript conent в MVC

Я использую 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>

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;
    });
});
Другие вопросы по тегам