2012-02-02 1 views
0

私はWebformsから切り替えたいので、asp.net mvcを調べています。私はjQueryを使って文字列を投稿し、その文字列を返信してみることで実験していました。しかし、コントローラのアクションメソッド内でpostパラメータにアクセスする方法がわかりません。jQueryを使用して投稿するときにアクションメソッドのHttp Post値にアクセスする方法

あなたのデータは "のリストである必要があり

$(function() { 
     $("#GetReport").click(function() { 
      $.ajax({ 
       type: 'POST', 
       url: '/Reports/GetReport', 
       data: 'Abracadabra Mercedes', 
       contentType: 'application/text;charset=utf-8', 
       dataType: 'text', 
       success: function (result) { 
        alert(result); 
       } 


      }); 
     }); 
    }); 

//Controller Code 
public class ReportsController : Controller 
    { 
     // 
     [HttpPost] 
     public ActionResult GetReport(string query) 
     { 


      ViewBag.Result = "Hello"; 

      ViewBag.Geronimo = query; 

      return View(); 

     } 

    } 

     //View Code 
@{ 
    Layout = null; 
} 

@ViewBag.Result + @ViewBag.Geronimo 

答えて

1

(私はjQueryのAJAX呼び出しではなく、フォームを使用して掲載していますので、明らかであると思いいる)私はFormCollectionを使用してみましたが、それは空でありますURL上のキー/値。その後、その情報がActionメソッドのクエリパラメータに渡されます。

$(function() { 
    $("#GetReport").click(function() { 
     $.ajax({ 
      type: 'POST', 
      url: '/Reports/GetReport', 
      data: 'query=Abracadabra Mercedes', 
      success: function (result) { 
       alert(result); 
      } 


     }); 
    }); 
}); 

詳細はhttp://www.tugberkugurlu.com/archive/working-with-jquery-ajax-api-on-asp-net-mvc-3-0-power-of-json-jquery-and-asp-net-mvc-partial-viewsを参照してください。

この例では、彼がこれをやっているのを見ることができます。探し:

var d = "itemId=" + itemId; 

編集:私はちょうどハズレ

<input type="button" value="Click" id="GetReport" /> 
<input type="text" id="tester"/> 

<h2>Index</h2> 
<script type="text/javascript"> 
$(function() { 
    $("#GetReport").click(function (e) { 
     var d = "input=" + $('#tester').val(); 
     debugger; 
     $.ajax({ 
      type: 'POST', 
      url: '/Home/test', 
      data: d, 
      success: function (result) { 
       alert(result); 
      } 

     }); 

     if (e && e.preventDefault) { 
      e.preventDefault(); 
     } 
    }); 
}); 

public class HomeController : Controller 
{ 
    [HttpPost] 
    public ActionResult Test(string input) 
    { 
     return new ContentResult() { Content = input }; 
    } 
+0

今ここにしようとした、動作するようには思えません。 – shashi

+0

Okは動きました。コンテンツタイプとデータタイプを削除する必要があり、うまくいきます。 –

+0

うん、うまくいきました。本当にありがとう!私は、これらの2つのパラメータが、それが以前に働いていなかったことがどのような効果を持っているのだろうと思う。 – shashi

関連する問題