MVC4如何在javascript中将值传递给Html.Partial?

时间:2014-10-11 16:50:50

标签: javascript jquery asp.net-mvc asp.net-mvc-4

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? 谢谢

1 个答案:

答案 0 :(得分:1)

您需要在控制器端组合它们。将我的操作更改为

public PartialViewResult MyAction (int id)
{
    MyViewModel model = new MyViewModel(id);
    return PartialView("PartialName", model);
}    

然后在你的脚本中而不是调用渲染视图函数

$('#divMyText').html(result);

这将使用绑定模型返回部分视图并将其放入div