Государственное управление 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;
});
});