所以我在控制器中有这个方法,我通过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;
}
}
}
我直接转到的网址是
所以你可以看到参数不应该为null,那为什么呢?
亲切的问候
答案 0 :(得分:1)
将参数重命名为id。
这是MVC中的默认绑定“{controller} / {action} / {id}”
答案 1 :(得分:1)
或使用网址:
http://localhost:4891/Idle/EditTimeBeforeIdle/?time=21
这可能是您想要的方式。