如何通过删除 ASP.Net MVC 5 中的 set 访问器来使属性只读

Unb*_*ble 1 c# asp.net-mvc asp.net-mvc-5

我是 ASP.Net MVC 5 的初学者,我想知道如何通过删除 set 访问器来使属性只读。

所以我总是可以将属性设为只读,如下所示

方法一:

[ReadOnly(true)]
public string Name {get; set;}
Run Code Online (Sandbox Code Playgroud)

方法二:

在 cshtml 文件中,我可以使用"readonly"属性

方法三:

但我想做类似下面的事情

   public string Name {get;}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到错误消息

“您必须声明一个主体,因为该属性未标记为外部或抽象”

我正在看一个教程,导师告诉我这应该可行。请指导我。

PS:我知道第一种方法用户仍然可以编辑表单中的值但是post方法中提交的值将始终为NULL

Max*_*ime 5

您可以使用public string Name {get; private set;}.

这意味着 getter 是public属性,而 setter 是private。因此,该属性只能通过类内部的代码进行设置。它对访问类实例的任何外部代码都是只读的。