我试图找出一种方法,让名为"创建"的jquery对话框按钮与 asp.net 提交按钮执行相同的操作。
<input type="submit" value="Create" />
我正在使用jquery 1.3.2
我想出了以下内容,让对话框使用正确的控制器方法。
var url = '<%= Url.Action("Create1", "Home") %>';
$.post(url,data,
function(data) {
alert("Successful. Id for this client is " + data.ClientNo);
$("#CreateForm input").attr("value", ""); // Success
},
"json"); // DataType
但是,该方法需要一个模型参数
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create1(ClientDetail client)
查看 http://api.jquery.com/jQuery.post/数据参数是发送到服务器的映射或字符串
我想知道是否可以使用 .attr 方法将模型转换为地图或字符串?
谢谢
您唯一需要做的就是确保您的帖子数据与 ClientDetail
的属性值具有相同的名称。因此,如果ClientDetail
有两个属性:Name
和 Age
,请确保您发布的数据如下所示:
var data = { Name: 'ClientName', Age: 24 };
ASP.NET MVC 的DefaultModelBinder
会将发布的数据绑定到您的ClientDetail
对象。
请参阅 http://api.jquery.com/submit/
<form id="target" action="destination.html">
<input type="text" value="Hello there" />
<input type="submit" value="Go" />
</form>
<div id="other">
Trigger the handler
</div>
Jquery函数:
$('#other').click(function() {
$('#target').submit();
});
我能建议你做的是:让签名接受你所有的参数,你在服务器端将构造你的对象,并将其保存到你的数据存储中。
请考虑以下一个:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create1(string clientName, string clientTitle, int clientAge)
{
var client = new Client()
{
name = clientName,
title = clientTitle,
age = clientAge,
..,
.., etc
}
}
让我知道这是否适合您,如果它真的对您有帮助,请不要忘记标记为答案
谢谢。