控制器搜索视图而不是返回不同的视图方法

时间:2012-05-08 18:58:53

标签: asp.net-mvc asp.net-mvc-3

我有两个控制器操作概述如下:

public ViewResult TitleStorylines(int id)
    {
        var vm = Service.Get(id);
        vm.IsEditable = User.HasPermission(SecurityPermissionType.ManageStorylines);
        return View(vm);
    }

public ViewResult TitleStorylinesCreate(TitleStorylineModel model)
    {
        var created = Service.Create(model);
        return TitleStorylines(created.TitleId);
    }

我的项目中只有一个名为TitleStorylines的视图,第一个控制器操作处理正常。但是当我调用第二种方法时,它会给我一个错误,说它找不到名为TitleStorylinesCreate的视图,即使我明确地调用了前一种方法。是什么给了什么?

2 个答案:

答案 0 :(得分:3)

你试过吗?

return View("TitleStorylines",created.TitleId);

编辑:根据您的更新:我猜您要将表单发布回TitleStorylinesCreate。所以可能在保存之后,你不想将用户重定向回相同的Get动作吗?

[HttpPost]
public ViewResult TitleStorylinesCreate(TitleStorylineModel model)
{
    var created = Service.Create(model);
    return RedirectToAction("TitleStorylines",new { @id=created.TitleId});
}

在上面的示例中,我们正在执行PRG模式。 发布 - >重定向 - >获得 保存后,我们将它们重定向回第一种方法。它将是HTTP GET方法。

答案 1 :(得分:0)

        public ActionResult TitleStorylinesCreate(TitleStorylineModel model)
{
    var created = Service.Create(model);
    return RedirectToAction("TitleStorylines",new { @id=created.TitleId});
}