2015-10-23 84 views
-1

在使用實體框架6的ASP.NET MVC 5中,我使用了一個典型的帶有EF的MVC控制器模板,並且在那裏添加了一個自定義動作。在動作控制器中接收參數JSON

我的想法是從AJAX調用中調用此動作,以動態填充select2下拉列表。

... 
    public JsonResult getWarrehouses(string name) 
      { 
       var warrehouses = from c in db.warrehouses 
           where c.nom_wrh.Contains(name) 
           orderby c.nom_wrh 
           select new { c.cod_wrh, c.nom_wrh} ; 
       return Json(warrehouses.ToList(), JsonRequestBehavior.AllowGet); 
      } 
... 

不過,我不知道如何將參數傳遞到這一點,所提供的參數始終是零。如果輸入:http://localhost:[port]/warrehouses/getWarrehouses/somestring,則不會收到參數。 我想如何聲明該操作以接收GET參數? 如果我的方法錯誤,請隨時提供備用解決方案。

+0

如果您在ASP.NET中使用MVC,則將params添加到您的路由文件中,並將匹配的值傳遞給所調用的方法。 – coder4show

+1

嘗試使用http:// localhost:[port]/warrehouses/getWarrehouses?name = somestring – petelids

+0

問題在於我打電話的方式。謝謝。 –

回答

2

問題可能在調用中。例如: 「名稱」是您的Action中參數的名稱;

 $.ajax({ 
      type: "POST", 
      url: @Url.Action("getWarrehouses"), 
      data: { 
       name: VALUE_TO_PASS 

      }, 
      success: function (data) { 

      // Manipulate (data) 
      } 
+1

也許我應該改變POST的GET :) –

相關問題