2011-10-05 52 views
3

您好我有一个这样的方法:

[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)我也想传递一个包含表单名称的字符串。所以基本上我想打电话给这样的方法:

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

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

回答

0

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

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

e:offtopic,但您应该也可以在GetPayeesJson方法中使用[HttpPost]作为属性的简短形式。

E2:更专一...... 添加作为查询字符串 - >"/Payee/GetPayeesJson/" + payerData.Id + "?formName=whateverYourFormIsNamed"

增加为形式的变种 - >见吐司的答复

这些都将让你使用语法你指定你的控制器动作。

+0

谢谢您的回答。你可以说得更详细点吗。我正在使用asp.net MVC框架,并将此调用传递给Controller类。 – SaiBand

1

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

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


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

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."); 
    }   
}); 
+0

默认为“发布”,但我认为这样做会很有用,因为OP的操作方法需要它,所以在这里使用'type:'POST''来显式说明它。 –

+0

同意。 [编辑] – Justin

0

您需要将这些信息作为提交data

这样的一部分,你的具体的例子

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

应该做你需要什么..