2010-08-22 76 views
1

嘿,那裏,我試圖做一個網站有以下內容:新聞,產品,關於和聯繫。問題是,例如產品 - 我有一個索引視圖來爲用戶列出產品,但是如果我想創建一個可以編輯產品(名稱,價格,數量)的「控制面板」 - 應該怎麼做,而不必創建雙productController?ASP.NET MVC - 管理

回答

1

您可以將不同的視圖關聯到一個控制器。每個視圖將鏈接到控制器中的操作方法。

你可以,爲例,定義ProductController類這樣

public class ProductController : Controller { 
    [HttpGet] 
    public ActionResult Index() { 
     var productList = ProductService.GetProducts(); 
     return View(productList); 
    } 

    [HttpGet] 
    public ActionResult Edit(int id) { 
     var product = ProductService.GetProduct(id); 
     return View(product); 
    } 

    [HttpPost] 
    public ActionResult Edit(ProductModel product) { 
     if (ModelState.IsValid()) { 
     // save the changes 
     return RedirectToAction("Index"); 
     } 
     return View(product); 
    } 
} 

而且在你Views文件夾對應的觀點:

Views 
| -- Product 
    | -- Index.aspx 
    | -- Edit.aspx 
+0

啊,一定是我在那裏還沒有正確的解釋。我正在嘗試製作一個小型CMS。您導航到http://something.com/products並查看列出的產品。如果你然後去http://panel.something.com和登錄你有一個網站,你可以管理所有的網頁,例如產品。我的問題是面板和普通網站共享控制器? – ebb 2010-08-22 15:45:28

+0

您通常會在一個控制器中使用不同的CRUD操作。對於創建/更新/刪除操作,您只需使用[授權]屬性在控制器中標記操作,以確保用戶有權執行該操作。 http://www.asp.net/mvc/tutorials/authenticating-users-with-forms-authentication-cs。 – Michael 2010-08-22 15:50:35

+0

是的,我知道那個邁克爾。問題是,在http://panel.something.com/products-我希望能夠再次列出產品,但這次是通過編輯/刪除鏈接。我應該在面板中爲列表創建新的視圖還是可以重複使用http://something.com/products的視圖? – ebb 2010-08-22 15:52:51