我试图找出一种方法让一个名为Create的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方法将模型转换为地图或字符串?
谢谢
答案 0 :(得分:1)
请参阅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();
});
答案 1 :(得分:1)
您唯一需要做的就是确保您的帖子数据与ClientDetail
的属性值具有相同的名称。因此,如果ClientDetail
有两个属性:Name
和Age
,请确保您发布的数据如下所示:
var data = { Name: 'ClientName', Age: 24 };
ASP.NET MVC的DefaultModelBinder
会将发布的数据绑定到您的ClientDetail
对象。
答案 2 :(得分:0)
我建议您做的是:让签名接受您的所有参数,然后您在服务器端构建您的对象,并将其保存到您的数据存储中。
考虑以下因素:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create1(string clientName, string clientTitle, int clientAge)
{
var client = new Client()
{
name = clientName,
title = clientTitle,
age = clientAge,
..,
.., etc
}
}
让我知道这是否适合您,如果它确实对您有帮助,请不要忘记将其标记为答案
感谢。