参数保持为null,即使我在URL中键入它也是如此

时间:2015-02-11 14:44:53

标签: c# asp.net-mvc

所以我在控制器中有这个方法,我通过javascript调用,但是我收到错误500:内部服务器错误。当我尝试直接通过我的URL访问该方法时,为了查看问题所在的位置,我看到该参数始终作为null传递。

代码如下:

Controller(EditTimeBeforeIdle的参数应该是常规int,但为了调试目的我暂时更改了它):

[Authorize]
public class IdleController : BafcareController
{
    private readonly ISystemUnitOfWork _systemUnitOfWork;
    private readonly ICurrentUser _currentUser;

    private readonly User _user;

    public IdleController(ISystemUnitOfWork systemUnitOfWork, ICurrentUser currentUser)
    {
        _systemUnitOfWork = systemUnitOfWork;
        _currentUser = currentUser;

        _user = _systemUnitOfWork.UserRepository.GetUserById(_currentUser.User.Id); 
    }
    public int EditTimeBeforeIdle(int? time)
    { //<-- Breakpoint here to check, time == null

        _user.TimeBeforeIdle = time;
        _systemUnitOfWork.UserRepository.Update(_user);

        ModelSessionHelper.TimeBeforeIdle = time.Value;
        return time.Value;
    }
}

}

我直接转到的网址是

  

http://localhost:4891/Idle/EditTimeBeforeIdle/21

所以你可以看到参数不应该为null,那为什么呢?

亲切的问候

2 个答案:

答案 0 :(得分:1)

将参数重命名为id。

这是MVC中的默认绑定“{controller} / {action} / {id}”

答案 1 :(得分:1)

或使用网址:

 http://localhost:4891/Idle/EditTimeBeforeIdle/?time=21

这可能是您想要的方式。