2011-05-17 24 views
0

我试图找出一种让jquery对话框按钮称为创建做一样的asp.net提交按钮的方法。jQuery的对话框按钮做相同的asp.net mvc提交按钮

<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方法的地图或字符串?

谢谢

回答

1

您唯一要做的就是确保您的发布数据与属性值ClientDetail具有相同的名称。所以,如果ClientDetail有两个属性:NameAge,然后确保数据在发布这个样子的:

var data = { Name: 'ClientName', Age: 24 }; 

ASP.NET MVC的DefaultModelBinder将发布的数据绑定到ClientDetail对象。

+0

谢谢你的工作 – porps89 2011-05-17 13:45:30

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

我认为他是在寻求一种Ajax的方式,而不是传统的回帖之一。 但无论如何,感谢您的帮助。 – 2011-05-17 13:02:09

0

我可以建议你做的是:让签名接受所有的参数,你就服务器端将构建您的对象,并将其保存到您的数据存储。

考虑下列之一:

[AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Create1(string clientName, string clientTitle, int clientAge) 
    {   
      var client = new Client() 
         { 
          name = clientName, 
          title = clientTitle, 
          age = clientAge, 
          .., 
          .., etc 
         } 
    } 

让我知道,如果这对你的作品,并且不要忘记标记为答案,如果它真的帮助你

感谢。

+1

如果名称匹配属性名称,模型联编程序将为您执行此操作。 – Patricia 2011-05-17 13:14:38

+0

酷,我之前不知道这一点,感谢您和+ a的新信息。 – 2011-05-17 13:34:42