Asp.net mvc 如何删除querystring asp.net mvc中的空参数
所以,我有一个方法,它接受一个字符串和一个对象,这个对象有MVC转换成querystring参数的值,我的问题是在哪里以及如何去除空的参数,这样我的url就更干净了 表格: 路由链路:Asp.net mvc 如何删除querystring asp.net mvc中的空参数,asp.net-mvc,asp.net-mvc-routing,query-string,Asp.net Mvc,Asp.net Mvc Routing,Query String,所以,我有一个方法,它接受一个字符串和一个对象,这个对象有MVC转换成querystring参数的值,我的问题是在哪里以及如何去除空的参数,这样我的url就更干净了 表格: 路由链路: routes.MapRoute ( "Default", "{controller}/{action}/{id}", new {controller = "Home", action = "Index"
routes.MapRoute
(
"Default",
"{controller}/{action}/{id}",
new {controller = "Home", action = "Index", id = UrlParameter.Optional }
);
类别:
class formModel{
public string name {get;set;}
public int? age {get;set;}
public Guid? jobId{get;set;}
public string Fullname {get;set;}
}
对象属性:
formModel{
name: "Mike",
age: 29,
jobId: null,
Fullname: ""
}
控制器操作:
[HttpGet]
public ActionResult Index(string sortByText, SearchFormModel formModel)
{
var model = new SomeViewModel();
model.FormModel = formModel;
//etc
return View(model);
}
网址:
例如:
如何摆脱jobId和Fullname并查找?我最终使用客户端javascript过滤表单数据,从而避免了任何不必要的或空的查询参数。一种可能性是使其可为null,而不是传递它。另一种方法是传递一个伪值,比如0。我正在研究Global.asax的路由,看看我是否可以在那里做些什么。它在路由中的作用不如你的动作方法参数大。接受可为空的id,或通过将id默认为0使其成为可选id。是否可以在Get请求中传递对象?是的,它使用对象工作,但我只想去掉用户在搜索中未输入的额外参数。
[HttpGet]
public ActionResult Index(string sortByText, SearchFormModel formModel)
{
var model = new SomeViewModel();
model.FormModel = formModel;
//etc
return View(model);
}