MVC返回view()问题

时间:2011-05-31 19:12:11

标签: asp.net-mvc

我是MVC的新手,我正在尝试为已经开发的应用添加更多功能。

在验证模型无效后,我无法使用发布的结果返回视图。

我的控制器有三个注意事项:

public ActionResult Create(int workID)

[HttpParamAction]
[HttpPost]
public ActionResult SaveNormal(WorkViewModel workView)

[HttpParamAction]
[HttpPost]
public ActionResult SaveAddAnother(WorkViewModel workView)

由于之前的要求,我必须更改提交操作,以便使用发布的结果调用上述两个中的一个。一切正常,但由于模型状态无效,我正试图回发,我试图用以下内容:

if (!ModelState.IsValid)
    return View("Create", workView);

它确实需要我创建(Create.aspx)视图,但URL是工作/操作,而不是工作/创建,这意味着当我重新保存时,找不到工作/操作。

我不确定这是否是路由问题,但是下面提供了路由(我认为这基本上是默认路径......):

public static void RegisterRoutes(RouteCollection routes)
{

    // This is the original
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { 
            controller = "Home", 
            action = "Index", 
            id = UrlParameter.Optional 
        } // Parameter defaults
    );
}

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    RegisterRoutes(RouteTable.Routes);
}

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

网址基于操作名称;不在视图名称上。您可能需要RedirectToAction("Create"...)并从那里发出View()