首页 新闻 搜索 专区 学院

.net mvc action跳转问题

0
悬赏园豆:20 [已关闭问题] 关闭于 2014-07-09 17:08

今天做一个表单的提交,提交后需要跳转到另一个controller的action,能跳转到action,但就是返回不到页面。

下面是表单提交的两个action。问题出在第二个(第一个action是能正常运行的)

public class Input_IntentionCreateController : Controller
{

IEFCrud crud = new EFCrud();
[HttpPost]
public ActionResult Submit_Input_AuditByManager(Input_Audit
input, long taskId, string EmployeeNumber)
{
SaveEN_Follow(input, taskId);
BP_IntentionCreate wf = new BP_IntentionCreate();
WF_Ex.Host.IWFHost host = new WF_Ex.Host.WFHost();
host.SubmitTask(wf, taskId, input);
return RedirectToAction("Index", "InTask");
}
[HttpPost]

public ActionResult Submit_Input_Approval(Input_Verify input)
{
return RedirectToAction("Index", "InTask");
}

}

跳转之后的action如下:

public ActionResult Index()
{
return View();
}

我通过鼠标右键选择进入view,是能进入的,而且其它的都正常的。就上面第二个action跳转到这里之后就会显示找不到相应的页面,

求mvc原理大神指导,拜谢!

问题补充:

急急急!!!

天天笑笑的主页 天天笑笑 | 初学一级 | 园豆:94
提问于:2014-06-27 15:09
< >
分享
所有回答(1)
0

你换成return RedirectToAction("Index");吧,因为你是在同一个控制器之间跳转Action,那么默认情况下,还是这个控制器,所以不需要指定controller名称,其实你要是制定了也没有关系,但是你要看啊,你指定的是InTask控制器,那么你的项目中就应该存在这么一个叫InTask的控制器,并且这个控制器中存在一个Index的Action,如果没有的话,是会报错的~

RedirectToAction重定向方法里面的参数含义,第一个指的是Action名称,第二个若存在则是要重定向到的控制器名称,希望可以帮到你。

LgV5 | 园豆:221 (菜鸟二级) | 2014-06-27 15:25

不是在同一个controller里。而且,InTask控制器是存在的,Index的Action也是存在的。文中我也说道了。第一个action都能正常跳转的。呵呵

支持(0) 反对(0) 天天笑笑 | 园豆:94 (初学一级) | 2014-06-27 15:32

@天天笑笑: 能将报错的截图发过来看下么?报错信息中应该会显示它对于你的重定向,都在哪些路径中进行了查找,查询不到就会报错的,你的第一个能执行,第二个不可以,一下子是看不到原因呢,看下怎么报错的吧

支持(0) 反对(0) LgV5 | 园豆:221 (菜鸟二级) | 2014-06-27 15:36

@车上有首长: 

{System.InvalidOperationException: 未找到视图“Index”或其母版视图,或没有视图引擎支持搜索的位置。搜索了以下位置:
~/Views/InTask/Index.aspx
~/Views/InTask/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/InTask/Index.cshtml
~/Views/InTask/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml
在 System.Web.Mvc.ViewResult.FindView(ControllerContext context)
在 System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
在 System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17()
在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult)
在 System.Web.Mvc.Controller.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
在 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
在 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
在 System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult)
在 System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
在 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)}

项目下的Index视图也是存在的。

 

支持(0) 反对(0) 天天笑笑 | 园豆:94 (初学一级) | 2014-06-27 16:19

@天天笑笑: 好悲伤...看起来似乎是没什么问题的,要不你试试return Redirect("/InTask/Index");我只能帮你到这里了,不管是否可以请告诉我~~~,也希望你能够找出原因,并且分享下

支持(0) 反对(0) LgV5 | 园豆:221 (菜鸟二级) | 2014-06-27 16:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册