今天主要是要新增Authorization 和Authentication
並微調一下view的內容
前面新增的Product都是針對admin使用者
對於一般的user只需要view的權限就可以了
在這裡新增一個頁面給一般使用者的action
其中包含index和detail的兩個頁面
這裡將index取做ClientUserIndex
detail 叫做ClientUserDetails
public ActionResult ClientUserIndex()
{
return View(_productRepository.GetAllProduct);
}
// GET: Product/Details/5
public ActionResult ClientUserDetails(int? id)
{
if (id == null)
{
return NotFound();
}
var product = _productRepository.GetProductById(id.Value);
if (product == null)
{
return NotFound();
}
return View(product);
}
同樣也要新增對應的兩個Razor view
內容和index以及detail都相同
只是要將edit 和delete拿掉
並且將連結的action改成新的路徑
ClientUserDetails.cshtml
<a asp-action="ClientUserIndex">Back to List</a>
//asp-action 是Microsoft.AspNetCore.Mvc.TagHelpers提供的tag helper,可以使用傳統寫法
ClientUserIndex.cshtml
<a asp-action="ClientUserDetails" asp-route-id="@item.Id">Details</a>
打開view的資料夾
可以看到除了個個Controller下對應的view資料夾
還多了兩個檔案
這個共用的檔案主要是將一開始需要參考的model拉出來寫成一個共用檔
因為已經有預先載入Models的檔案到view裡面了
可以將之後開發的view多餘的code拿掉
將上方的第一行改成
@model Product //只需要宣告要使用的model就好
其他頁面差不多
比較不相同的是index,宣告物件方式直接寫Product就可以了
@model IEnumerable<Product>