我刚刚开始学习 ASP.NET MVC3。
我有以下情况。在特定模型的创建视图中,用户可以通过单击链接(使用 Html.ActionLink 帮助程序呈现)来查找代码/描述。查找值是从数据库中的查找表中检索的,并显示在单独的视图中。这两个视图由两个不同的控制器处理。当用户在后一个视图中选择一个查找值时,该值(代码+描述)应该被复制回创建视图。
如何在两个视图之间传递数据?由于 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);
}
还有其他可能的解决方案吗?可以选择部分视图吗?