MVC将View(Jquery脚本)中的值传递给控制器

时间:2011-04-29 04:10:37

标签: asp.net-mvc

我想将视图中的值传递给控制器​​,当我使用下面的代码时,通过jquery检索值,它不起作用,控制器中的值为null。

  //Hardcoded to test   
  var groupId = 1;
    $('#timeList').load('/Time/Index/' + groupId);

    public ActionResult Index(int? groupId)
    {
        AddProjectToViewData(-1);
        return View(_service.ListTimes());
    }

3 个答案:

答案 0 :(得分:1)

试试这个:

var groupId = 1;
$('#timeList').load('/Time/Index', {groupId: groupId}); //Send named parameter

[HttpGet]
public ActionResult Index(int? groupId)
{
    AddProjectToViewData(-1);
    return View(_service.ListTimes());
}

希望这有帮助

答案 1 :(得分:0)

你想做一个帖子或一个get,我想你可能想要传回一个字符串或者json。为了方便起见,我将向您展示json:

///你的javascript

var groupId =1;

$.get('Time/Index/' + groupId, function(data) {
  $('#timeList').val(data);
   ///might need to do a for each since you are returning a list or whatever
});

///您的控制器逻辑

[HttpGet]
public string Index(int? groupId)
    {
        AddProjectToViewData(-1);
        //might want to pass back json here
        return WhateverYourDataIs.ToString();
    }

希望这有帮助

答案 2 :(得分:0)

假设您在global.asax.cs中使用默认路由,则可以在id

中检索此值
public ActionResult index(int? id)
{
     AddProjectToViewData(-1);
     return View(_service.ListTimes());

}

如果您希望在groupid中接收它,则必须稍微更改jquery代码   //硬编码进行测试

var groupId = 1;
    $('#timeList').load('/Time/Index?groupid=' + groupId);