2013-01-23 223 views
2

我有一個觀點和局部視圖在我的MVC 4項目。我有3個文本框,一個複選框和一個下拉視圖。我使用ajax.actionlink方法來調用我的控制器,Action並傳遞參數並從部分視圖中獲取結果並將它們顯示在視圖的div標記中頁。傳遞多個參數Ajax.ActionLink

這是我的代碼。

@Html.TextBoxFor(m=>m.searchParameter.cityName) 
@Html.TextBoxFor(m=>m.searchParameter.CountryName) 
@Html.TextBoxFor(m=>m.searchParameter.StateName) 

@Ajax.ActionLink("submit", "DisplaySearchResult", "Home" 
     , new { searchParameter = Model.searchParameter } 
    , new AjaxOptions() { HttpMethod = "Post", UpdateTargetId = "Results", InsertionMode = InsertionMode.Replace }, new { id = "DisplaySearchResult" }). 

問題是我無法將參數傳遞給模型。我是MVC4的新手。有沒有什麼辦法可以使用jQuery或JavaScript傳遞參數?我不想在搜索結果中加載頁面。

回答

1

依我之見,你想實現一個搜索表單。在這種情況下,我避免使用ViewModel,通常這樣做:

@Html.TextBox("CityName", string.Empty) 
@Html.TextBox("CountryName", string.Empty) 
@Html.TextBox("StateName", string.Empty) 

然後你可以使用位的jQuery的價值觀傳遞給您的操作方法:

$("#submit").click(function() { 

      var $form = $('form'); 

      $.ajax({ 
       type: "GET", 
       cache: false, 
       url: '@Url.Action(ActionName, ControllerName)', 
       data: $form.serialize(), 
       success: loadResult 
      }); 

function loadResult(data) 
     { 
      $("#container").html(data); 
     } 

只要確保你的操作方法具有適當的參數CityName, CountryName, StateName,以便值正確綁定。