2011-02-08 52 views
2

我想提出一些关于asp.net mvc的问题。 如何从普通的aspx网页表单调用asp.net mvc控制器动作? 我们的项目是使用asp.net mvc框架与visual studio 2008 C#.net。 例如,我想在普通的aspx网页表单中使用这种方式。从正常的aspx web窗体调用asp.net mvc控制器?

public ActionResult callMvc() 
{ 
    return RedirectToAction("Display","TempController"); 
} 

我知道它不应该像这样在MVC项目中使用,但我们需要一些情况。

问候

回答

4

你可以用与被路由到您的问题控制权的url Response.Redirect的,我在你的情况猜测,那就是:

Response.Redirect("/Temp/Display"); 
+0

谢谢您的回答我的朋友,在我叫这个动作之前,url就像这个“http:// localhost:50834/Normal/WebForm.aspx” 它在普通的aspx web窗体中,然后,我叫actio像你的方式。 它显示错误“无法找到资源”.url变得像这样 “http:// localhost:50834/Normal/Temp/Display” 实际上,这个控制器url是“http:// localhost:50834/Temp /显示“ 我如何解决? 关于 Indi – Indi 2011-02-08 11:00:15

+0

@Indi:尝试Response.Redirect(“../ Temp/Display”); – fretje 2011-02-08 11:17:15

1

这将是一个更好的主意,使用Url助手为你解决的网址,这样,如果你的路线改变,那么你不必重构你的代码。使用这种方法;

Response.Redirect(Url.Action("Display", "Temp")); 

我从来没有在这方面使用它,但我相信它应该按预期工作。

0

使用下面的代码:

Response.Redirect("~/Home/Index");

Controller/action

0

在WebForm的CS文件(从System.Web.UI.Page派生类)用途:

this.Response.RedirectToRoute(new { controller="ControllerToRedirectTo", action="ActionToRedirectTo", id=5, SomeOtherActionParameter="Parameter value" });