ASP.NET MVC3 の学習を始めたばかりです。
次のシナリオがあります。特定のモデルの作成ビューで、ユーザーはリンクをクリックしてコード/説明を検索できます (Html.ActionLink ヘルパーでレンダリングされます)。ルックアップ値は、データベース内のルックアップ テーブルから取得され、別のビューに表示されます。2 つのビューは、2 つの異なるコントローラーによって処理されます。ユーザーが後者のビューでルックアップ値を選択すると、その値 (コード + 説明) が作成ビューにコピーされます。
2 つのビュー間でデータを渡すにはどうすればよいですか? HTTP リクエストのステートレスな性質のため、これは不可能ですか?
Ajax リンクで試してみましたが、うまくいきませんでした。
コード スニペット ビューの作成:
<fieldset>
<legend>Z-Info</legend>
<div class="editor-label">
@Html.LabelFor(model => model.ZZL_U_CODE)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ZZL_U_CODE)
@Html.ValidationMessageFor(model => model.ZZL_U_CODE)
</div>
<div class="editor-label">
@Ajax.ActionLink("Land code test", "Index", "Domein", new {name = "lan" },
new AjaxOptions {
HttpMethod = "Get",
Url = Url.Action("Index", "Domein", new {name = "lan" }),
OnBegin = "OnBegin",
OnSuccess = "InsertCodeNaam",
OnFailure = "OnFailure",
OnComplete = "OnComplete"
})
</div>
ユーザーがコード/説明を選択すると、データSelect
を返す次のアクションが呼び出されますJson
。
アクションを選択:
public class DomeinController : Controller
{
private ZZLEntities db = new ZZLEntities();
//
// GET: /Domein/
public ViewResult Index(string name)
{
DomeinViewModel model = DomeinRepositry.GetAll(name);
return View(model);
}
GET: /Domein/Select/5
public JsonResult Select(int id, string naam)
{
return Json(new DomCodeNaam { codeValue = id, naamValue = naam }, JsonRequestBehavior.AllowGet);
}
他の解決策はありますか?部分ビューはオプションですか?