Asp.net mvc 3 如何在ASP.NETMVC3中防止表单提交时重定向,而只停留在页面上?
我在一个视图中有两个窗体。其中一个负责将图片上传到数据库。 我需要整个页面——以及用户在“其他表单”中输入的数据——保持不变,同时用户还可以上传图片。但它不起作用 问题是当用户提交照片时,整个页面都会改变。更糟糕的是,新页面只包含“照片上传”表单!!因为在Asp.net mvc 3 如何在ASP.NETMVC3中防止表单提交时重定向,而只停留在页面上?,asp.net-mvc-3,redirect,form-submit,Asp.net Mvc 3,Redirect,Form Submit,我在一个视图中有两个窗体。其中一个负责将图片上传到数据库。 我需要整个页面——以及用户在“其他表单”中输入的数据——保持不变,同时用户还可以上传图片。但它不起作用 问题是当用户提交照片时,整个页面都会改变。更糟糕的是,新页面只包含“照片上传”表单!!因为在返回视图()时,其视图已呈现:/ 看看行动方法: public ActionResult Upload(IEnumerable<HttpPostedFileBase> files) { //Upl
返回视图()时“上载图片”操作方法的代码>,其视图已呈现:/
看看行动方法:
public ActionResult Upload(IEnumerable<HttpPostedFileBase> files)
{
//Upload the pictures .
return View();
}
public ActionResult上传(IEnumerable文件)
{
//上传图片。
返回视图();
}
是否可以只通过更改操作方法的返回类型来实现我所需的结果,(可能?),从而不呈现任何内容并说只向用户显示一条消息,如“文件已上载!”
还是应该改用Ajax
提前感谢您的建议;) 如果视图是针对模型的强类型视图,则始终可以将模型传递回用户以“重新填充”常量表单(可能是最坏的选项)。另一个选择(可能是最好的)当然是ajax。您不能使用ajax上传文件,但可以使用一些第三方组件,使用类似ajax的隐藏iframe上传文件。你可以用谷歌jqueryajax上传插件
对于另一个表单,您可以使用Ajax.BeginForm/PartialView来避免完全刷新。谢谢JTMon;)我会选择阿贾克斯。