Я новичок в MVC, и мне это нравится, но я столкнулся с проблемой.У меня есть представление с кодом, подобным следующему:
@model MyModel
@Ajax.ActionLink("Add", "Create", "User", null,
new AjaxOptions {
UpdateTargetId = "mydiv",
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET"
},
new {
@class = "add"
})
<div>
@Html.Partial("UserTable", Model.RegisteredUsers)
</div>
<div id="mydiv" />
Это, вероятно, довольно очевидно, но на странице отображается список пользователей (частичное представление "UserTable") и имеется ссылка для администратора нанажмите, чтобы создать нового пользователя.Форма создания пользователя - это частичное представление, которое действует как всплывающее окно над таблицей пользователей.Вот действие контроллера, которое возвращает форму создания пользователя:
public string Create()
{
Models.User user = new Models.User();
PartialViewResult vr;
ViewContext vc;
StringWriter sw = new StringWriter();
vr = PartialView("../../Views/User/UserForm", user);
vr.ExecuteResult(this.ControllerContext);
vc = new ViewContext(this.ControllerContext, vr.View, vr.ViewData, new TempDataDictionary(), sw);
vr.View.Render(vc sw);
return "<div style=\"position:absolute; top:200px; left:175px\">" + sw.ToString() + "</div>";
}
Причина, по которой я возвращаю строку вместо ActionResult (или что-то в этом роде), заключается в добавлении div-обертки, который создает «всплывающее окно»эффект.Это все работает отлично, за исключением того, что, помимо отображения во всплывающем окне, форма создания пользователя также отображается под таблицей пользователей, где «mydiv».Изучение исходного кода страницы показывает, что «mydiv» не заменяется, а код для формы создания пользователя помещается как в этот div , так и в новом всплывающем div, и ябезуспешно выясняя, почему.
Я думаю, что я ссылаюсь на правильные библиотеки jQuery:
<script src="@Url.Contetn("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Contetn("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
Может кто-нибудь сказать мне, почему у меня такое поведение и как его исправить?Или есть лучший подход к достижению того же эффекта, который вы можете порекомендовать?
TIA!
Джефф
РЕДАКТИРОВАТЬ:
О, забыл упомянуть: причина, по которой я не могу просто поместить div "popup" в саму форму создания пользователя, заключается в том, что он используется в других местах системы, и такое поведение там нежелательно.Я сам не создал эту форму, просто использовал код другого разработчика в моем сценарии.