MVC4,点击下拉列表项javascript函数在视图'脚本中调用'部分。函数对控制器动作进行ajax调用,返回Json数据。我需要将一些返回的值传递给Html.Partial()来渲染。怎么做到这一点?那些价值"在当前背景下不存在"对于Html.Partial()。
查看:MyView
<div>@Html.DropDownList("listId", list, new { onChange=showText() }</div>
<div id="divMyText" ></div>
@section scripts{
function showText()
{
var val1 = 1;
$.ajax({
type:"POST",
url: "/Home/MyAction",
data: {parm1:val1},
success: function (result){
renderMyView(result.id);
}
});
}
function renderMyView(id)
{
$('#divMyText').html('@Html.Partial("MyView", new MyViewModel (id))'); // id here is Not 'visible' for MyViewModel.
}
}
CONTROLLER行动:
public ActionResult MyAction(int parm1)
{
.......
return Json (myObject);
}
public ActionResult MyView (int id)
{
MyViewModel model = new MyViewModel(id);
return View(model);
}
如何在Html.Partial语句中将id值传递给MyViewModel? 谢谢
答案 0 :(得分:1)
您需要在控制器端组合它们。将我的操作更改为
public PartialViewResult MyAction (int id)
{
MyViewModel model = new MyViewModel(id);
return PartialView("PartialName", model);
}
然后在你的脚本中而不是调用渲染视图函数
$('#divMyText').html(result);
这将使用绑定模型返回部分视图并将其放入div