MVC如何检测没有传递的URL参数

时间:2016-11-18 18:35:27

标签: asp.net-mvc

我有一个带有许多参数的控制器动作。如果没有传递参数,我想返回一个不同的视图。我想要一行代码来检测这一点,而不是检查每个参数以确定没有传递任何内容。

public ActionResult Index(SearchViewModel model)
{
    // doesn't work
    if (model.Equals(new SearchViewModel())) return View("differentview", model);

或者我应该采用不同的设计方法?我有一个Search控制器和一个SearchResults控制器,我将它们组合到同一个控制器中,它将根据传递给它的内容返回不同的视图。我应该以不同的方式去做吗?所有大男孩网站在那里做得怎么样?

2 个答案:

答案 0 :(得分:-1)

如果 (  model == null || model.ToString()==“”||   model.GetType()。GetProperties()。Any(x => AnyNull(x.GetValue(model))) ) { ....... }

答案 1 :(得分:-1)

在模型中创建属性,并使用数据注释将它们设置为[REQUIRED]。

public class SearchModel{
[Required,AllowHTml]
public string SearchTerms {get;set;}
}

在控制器中检查模型的状态是否有效:

  if(!ModelState.IsValid)return new HttpStatusCodeResult(HttpStatusCode.BadRequest);