请参阅以下代码:
[HttpPost]
public ActionResult Details(Guid personID)
{
//do some work
}
如果用户在不传递personID的情况下浏览详细信息,则应用程序错误。你怎么处理这个?使用Web窗体我会测试页面加载开始时参数不为null。但是,MVC无法做到这一点。
答案 0 :(得分:0)
您可以使参数为空,并在访问参数之前检查该参数是否为空。
public ActionResult Details(Guid? personID)
{
if(personID!=null)
{
// use personID.Value
}
else
{
}
// to do : return something
}
对于你的http post action mehod,你也可以这样做。但是你需要为http get和action方法提供唯一的方法签名。所以我假设您在HttpPost操作方法中有更多参数。
答案 1 :(得分:0)
有两种方式,
首先使用Default
值参数并检查Guid.Empty
其次使用nulable
参数并检查HasValue
属性
默认参数示例
[HttpPost]
public ActionResult Details(Guid personID = Guid.Empty)
{
if(personID == Guid.Empty)
{
//do some work
}
else
{
// do some work
}
}
Nulable参数样本
public ActionResult Details(Guid? personID)
{
if(personID.HasValue)
{
//do some work
}
else
{
// do some work
}
}
答案 2 :(得分:0)
你可以使用如下的可空参数:
$('.wrapper').asortable({
placeholder: 'ui-state-highlight',
forceHelperSize: true,
start: function( event, ui ) {
console.log('start: ');
console.log(ui);
},
stop: function( event, ui ) {
console.log('stop: ');
console.log(ui);
},
create: function( event, ui ) {
console.log('create: ');
console.log(ui);
},
change: function( event, ui ) {
console.log('change: ');
console.log(ui);
},
receive: function(event, ui) {
console.log('receive: ');
console.log(ui);
},
update: function( event, ui ){
console.log('sort: ');
console.log(ui);
},
});
因此,您可以使用正确的数据类型调用该方法,或者将null作为参数传递。