2016-09-02 22 views
0

我有一個視圖名稱EmployeeForm.cshtml和EmployeeController裏面我有兩個操作方法MyView()和RandomView()。 MyView()返回Employee Model的對象,而RandomView()方法返回EmployeeViewModel的對象。在mvc中命名視圖和動作方法是否是強制的?

但URl請求類似於:http://localhost:port/Employee/EmployeeForm即MVC期望EmployeeController內的EmployeeForm()方法。

我該如何糾正這個錯誤?

+0

可能是路由定義將請求映射到'EmployeeForm'動作到您在控制器中執行的其中一個動作。檢查方法上的路線註冊/屬性路線。 – Shyju

回答

2

不,這不是。

您查看錶單應該指向所需的名稱,無論它是當前的MyView()或另一個自定義名稱,通過裝飾具有屬性的控制器操作。

無論您選擇什麼,視圖表單都必須與操作名稱(或屬性名稱)匹配。

[ActionName("EmployeeForm")] 
public ActionResult MyView() 
{ 
    // You code here 
    return View(); // Will use MyView page 
    return View("SomeViewName"); // Will use SomeViewName page 
} 

關於查看頁面,這幾乎沒有關係。您可以將控制器操作設置爲使用View("SomeViewName", myModel)返回任何查看頁面。

注意:當使用BeginForm而不傳遞所需操作時,它將使用當前的View文件頁面作爲目標表單Url操作名稱。

0

否您不必使用相同的名稱視圖和操作。

代碼:

public ActionResult EmployeForm() 
{ 
    return ViewResult("AnotherViewName"); 
} 
相關問題