对于外部 HTML ajaxForm 帖子,MVC ActionResult 返回类型应该是什么
这个想法是将表单数据从普通的外部 Html 页面发布到另一个 MVC 站点控制器。然后数据的处理几乎就像使用网络服务一样。
$(document).ready(function () {
var options = {
target: '#output',
success: function(data){ alert('test success'); },
url: http://localhost:57232/Services/SendFormData,
dataType: json
};
$('form').ajaxForm(options);
});
ActionResult 正确接收 FormCollection 对象中的数据。
[HttpPost]
public ActionResult SendFormData(FormCollection collection)
{
string s = string.Empty;
return Json(new { Success = true, Message = "Message!" }, JsonRequestBehavior.AllowGet);
}
此时返回成功结果,但当它到达外部表单时,我的浏览器(在本例中为 IE)尝试保存或打开返回的字节,而不是调用成功回调函数。
因为此页面是外部页面,而不是 MVC 站点的一部分,所以我无法使用视图或部分视图。返回类型应该是什么?
The idee is to post form data from a normal external Html page to another MVC site controller. Then the data is processed almost like using a webservice.
$(document).ready(function () {
var options = {
target: '#output',
success: function(data){ alert('test success'); },
url: http://localhost:57232/Services/SendFormData,
dataType: json
};
$('form').ajaxForm(options);
});
The ActionResult receives the data correctly in the FormCollection object.
[HttpPost]
public ActionResult SendFormData(FormCollection collection)
{
string s = string.Empty;
return Json(new { Success = true, Message = "Message!" }, JsonRequestBehavior.AllowGet);
}
At this point the success result is returned but when it gets to the external form my browser which is in this case IE tries to save or open the bytes returned instead of calling the success callback function.
Because this page is an external page, and not part of the MVC site I cannot use a View or Partial View. What should the return type be?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要返回partialview结果:
此外,在AjaxForm中,您需要设置UpdateTargetID:
在Ajax表单的targetId中,您需要提及必须在其中显示响应数据的div id。
You need to return partialview result :
Also in the AjaxForm you need to set the UpdateTargetID:
in the targetId of the Ajax Form you need to mention the div id where you have to display the response data.