使用jquery将数据发送到MVC控制器
我有一个ASP.NET MVC3应用程序,当用户点击我的锚标签时,我想将3个数据发送到一个动作:
<a onclick='editDescription()'>
这是调用我的动作的javascript:
function editDescription(docId,fileName,description) { var url = "@Url.Content("~/OrderDetail/_EditDescription/")" + docId+'/'+ fileName + '/' + description; //do the rest}
我的行动:
public ActionResult _EditDescription(string id,string filename, string descritpion)
我关注的是文件名和描述,因为这些可以是loooooong,我不希望url如此出现:
http://localhost/OrderDetail/_EditDescription/123/some long filename.pdf/this is a long description for the name
如何将数据发送到我的操作而不必像查询字符串一样发送? 谢谢
您可以使用jQuery $ .ajax方法:
即使它仍然有效,请确保将Controller方法更改为:
[HttpPost] public ActionResult _EditDescription(string id, string filename, string descritpion)
如果您喜欢通过ajax $.post
或通过[HttpPost]
属性执行操作,您可以完整填写表单。
将您的操作声明为POST
[HttpPost] public ActionResult _EditDescription(string docId, string filename, string description)
创建一个不可见的HTML表单:
填写表格并用JS提交:
function editDescription(docId, fileName, description) { document.editDescriptionForm.docId = docId; ... document.editDescriptionForm.submit(); }