私はMVCに新たなんだが期待通りに働いて、それを好き、しかし、問題が発生したしていません。ASP.NET MVC3アヤックス:InsertionMode.Replaceは
@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」部分図)とにクリックして管理者のためのリンクが含まれています。私はこのようなコードでビューを持っています新しいユーザーを作成します。ユーザーフォームの作成は、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」というUserTableの下にもユーザー作成フォームが表示されます。ページのソースの検査は「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!
ジェフは
EDIT:
ああ、言及するのを忘れてしまった:私はちょうど作成ユーザーフォーム自体に「ポップアップ」のdivを置くことができない理由は、それが中に他の場所で使われているということですそのシステムは、その行動はそこでは望ましくない。私はそのフォームを自分で作成せず、私のシナリオで別の開発者のコードを再利用するだけでした。