iT邦幫忙

1

C# MVC 符號問題請教

  • 分享至 

  • xImage

您好:參考
https://coolmandiary.blogspot.com/2021/06/aspnet-mvcmodel2mvc-model.html

其中

@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey / })
這邊的【/
】,是註解嗎? 還是用途為何?

另外
@foreach (var item in Model) {


@Html.DisplayFor(modelItem => item.City)

為何 @Html.DisplayFor(modelItem => item.City)
會需要modelItem => item.City,不能直接用item.City嗎

謝謝!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
deh
iT邦研究生 1 級 ‧ 2022-02-05 17:37:43
最佳解答

1./* 註解內容 */是註解沒錯。

@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) 

那個new {} 是要丟給action的參數,作者為啥要註解掉就不知道了
ActionLink可參考https://ithelp.ithome.com.tw/articles/10188851

2.不行。
你可以F12進去看DisplayFor的定義,看他接收什麼參數。

Lambda表示式是一種編寫匿名函式(即沒有名稱的函式)的方法。在“箭頭”左側的內容是函式引數,而在右側的內容是函式主體。因此,(x => x.Name)在邏輯上轉換為類似string Function(Data x) { return x.Name }的型別

參考 https://www.796t.com/post/MWRtcG8=.html
當然遇到這種問題你也可以直接run看看

另外發問時可以

noway iT邦研究生 1 級 ‧ 2022-02-05 21:34:18 檢舉

您好:謝謝您!參考您的LINK他有一段

現在,讓我們看看model => item.FirstName的含義。從邏輯上講,它將轉換為string Function(Model model) { return item.FirstName; }。基本上,這是帶有引數的函式,但是不使用此引數。

所以前面的 @Html.DisplayFor(modelItem => item.City)
modelItem,只是將它成為帶引數的函示,
但結果,並不是使用此引數, 而是直接用item 來做回傳的依據?

deh iT邦研究生 1 級 ‧ 2022-02-06 17:22:13 檢舉

沒錯,而且你可以把modelItem改成x或其他你喜歡的東西,都不影響結果。

0
Samuel
iT邦好手 1 級 ‧ 2022-02-05 17:44:05

可以參考微軟官網針對Html.DisplayFor的Extension Method的Overload
https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.html.displayextensions?view=aspnet-mvc-5.2

預設透過Scaffold List模板會自動產生那些程式碼
那些是自動產生的註解
再後續你可以自行填充設定唯一識別流水號
文章中只是單純紀錄而已

我要發表回答

立即登入回答