Jquery $ .post方法

时间:2011-10-05 20:19:09

标签: jquery asp.net-mvc-2

嗨我有这样的方法:

 [AcceptVerbs(HttpVerbs.Post)]
        public JsonResult GetPayeesJson(long id)
        {
             ///TODO:
        }

现在它正在从这样的Javascript函数中调用并运行良好:

$.post("/Payee/GetPayeesJson/" + payerData.Id, null, function (data) {
               fillPayeeCache(data, payerData.Id);
               fillPayeeSelect(payeeCache[payerData.Id]);
            }, "json");

除了传递给方法GetPayeesJson(long id)的id之外,我还想传递一个包含表单名称的字符串。所以基本上我想对这样的方法进行调用:

        [AcceptVerbs(HttpVerbs.Post)]
        public JsonResult GetPayeesJson(long id, string formName)
        {
           //TODO:
        }

我怎么做到这一点。提前谢谢!

4 个答案:

答案 0 :(得分:1)

示例:请求test.php页面并发送一些其他数据(同时仍然忽略返回结果)。

$.post("test.php", { name: "John", time: "2pm" } );


来源:http://api.jquery.com/jQuery.post/

答案 1 :(得分:0)

将formName作为查询字符串变量添加到$ .post调用中的url可能最简单。 (即将“?formName = whatever”添加到您的URL)您也可以将其作为名为formName的表单变量发布。

此行为是可覆盖的,但默认情况下,您可以使用适当命名的查询字符串或表单变量。

e:offtopic但你也应该能够在GetPayeesJson方法中使用[HttpPost]作为属性的缩写形式。

e2:更具特异性...... 添加为查询字符串 - > "/Payee/GetPayeesJson/" + payerData.Id + "?formName=whateverYourFormIsNamed"

以表格形式添加 - >看看Toast的回复

这些将允许您使用您指定的控制器操作的语法。

答案 2 :(得分:0)

这个怎么样?

$.ajax({
    url: 'example.php',
    dataType: 'json',
    type: 'POST',
    data:  { 
        formName: 'formName' 
    },
    success: function (response) {

    },
    error: function(response, data) {
      alert("Oops... Looks like we're having some difficulties."); 
   }         
});

答案 3 :(得分:0)

您需要将该信息作为提交的data

的一部分传递

所以对于你的具体例子

$.post("/Payee/GetPayeesJson/" + payerData.Id, 
       {'formName':'value to be passed here'}, 
       function (data) {
               fillPayeeCache(data, payerData.Id);
               fillPayeeSelect(payeeCache[payerData.Id]);
            }, "json");

应该做你需要的......