如何在MVC4剃刀中将参数传递给局部视图

时间:2013-05-20 11:42:18

标签: jquery view partial parameterized

在我的asp.net mvc 4应用程序中,我想将参数传递给局部视图,但我们要传递的参数来自javascript代码

以下是代码

<script>
    var TestId;

 $(document).ready(function () {

        // Send an AJAX request       


        $.getJSON("/api//GetFun?Id="+@ViewBag.Id,

                function (data) {

TestId= data.Id
//i am getting the id here which i need to pass in partial view

}
1)...........
});


</script>

html代码:

 <div id="tab1" >

 2)....      @{ Html.RenderAction("MyPartialView", "MyController", new { id = TestId });}
  </div>

那么请告诉我如何将测试ID传递给我的部分视图:HTML(2)代码或javascript(1)

3 个答案:

答案 0 :(得分:2)

在javascript中使用以下代码并从javascript函数加载视图

var url = '@Url.Action("MyPartialView", "MyController")';
url += '/?Id=' + TestId ;
$("#tab1").load(url); 

将以下代码放入您的控制器

public ActionResult MyPartialView( int id )
{
    return Partial( "MyPartialView", id );
}

希望这有帮助

答案 1 :(得分:1)

来自this SO问题:

假设您的控制器名为“MyController”,您的局部视图称为“MyPartialView”,您创建一个接受Id参数并返回局部视图的控制器方法:

public ActionResult GetPartialView( int id )
{
    return Partial( "MyPartialView", id );
}

然后您可以使用以下jQuery加载部分视图:

$('#tab1').load('/My/GetPartialView?id=' + TestId);

答案 2 :(得分:0)


查看:此时我们将“category”参数传递给控制器​​,其中“admin”

@{ Html.RenderAction("Menu", "Nav", new { category = "admin" }); }


控制器:此处我们获取“category”参数的值

public PartialViewResult Menu(string category, string menu = null)
{
     IEnumerable<Menu> menus = repository.Menus
    .Select(x => x)
    .Where(x => (x.MenuCategory == category)
    .OrderBy(x => x.MenuSequence).ToList(); 
     return PartialView(menus);
}


希望这会有所帮助。