2013-02-22 116 views
3

所以,我有一個方法接受一個字符串和一個對象,該對象具有MVC轉換爲查詢字符串參數的值,我的問題是在哪裏以及如何擺脫這些參數是空的,所以我的網址更乾淨。如何刪除查詢字符串中的空參數asp.net mvc

形式:

@using (@Html.BeginForm("Index", "ControllerName", FormMethod.Get, 
    new { enctype = "multipart/form-data", id = "form2" })) 

    //Should I do a check in here for null values before getting the request? 

路由鏈接:

 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); 
    } 

網址:

例如:http://www.domain.com/mycontroller?name=Mike&age=29&jobId=&Fullname=&Find=Find

我怎樣才能擺脫和的jobId的全名和查找?

+0

一種可能性是使其可以爲空並且不通過它。另一個是通過一個像0這樣的虛擬值。 – 2013-02-22 17:58:11

+0

我正在查看Global.asax的路由,看看我能否在那裏做些什麼。 – Rayshawn 2013-02-22 18:04:00

+0

與行爲方法有關的參數並非如此。接受一個可爲空的ID,或者通過將其默認爲0來使ID可選。 – 2013-02-22 18:05:20

回答

0

我最終過濾了客戶端JavaScript的表單數據,而不是任何不必要或空的查詢參數。