我在Ajax.BeginForm中遇到了一些困难
我有这样的看法
<% using (Ajax.BeginForm("ActionName",null,new { id = "FormName" })) {%> <input type="hidden" value = '<%= Html.Encode( Model.id) %>' name="id"/> <textarea id="message" name=message rows="4" style="width: 90%"> </textarea> <% }%}
而行动方法就是这样的
[AcceptVerbs(HttpVerbs.Post)] [Authorize] public ActionResult ActionName(int id,string message) { .... }
我试图将“id”和“message”传递给action方法.我传递’null’为routeValues,但我不知道通过什么.理想情况下,我试图找到一个不需要路由值的重载,但是使用了actionName和htmlattributes(对于表单名称),但是找不到一个.我不想在视图模型中添加’message’,我需要在这里的FormName中进行jquery操作.
解决这个问题的最好办法是什么?
哦,我忘了提一下,这是怎么发表的
$.post($("#FormName").attr('action'),$("#FormName").serialize(),function(result) { $("#correspondingDiv").html(result); } );
解决方法
使用此超载:
http://msdn.microsoft.com/en-us/library/dd470605.aspx
http://msdn.microsoft.com/en-us/library/dd470605.aspx
Ajax.BeginForm( string "ActionName",string "ControllerName",new routevalues {id="IDValue",message="MyMessage"},new AjaxOptions {OnBegin=[someFunction],OnFailure=[failureFunction] },new { id = "FormName" } )