Asp.net mvc 2 Html.Encode将Id转换为它';s选定的文本

Asp.net mvc 2 Html.Encode将Id转换为它';s选定的文本,asp.net-mvc-2,html-helper,Asp.net Mvc 2,Html Helper,因此,我认为: <%= Html.Encode(Model.STPData.ProjectName)%> 现在,假设我没有使用ProjectName作为字符串,而是使用ProjectId。如何使其显示Id对应的文本字符串?包含所有文本/值对的下拉列表-我可以生成,但它不存储在任何地方 我被难住了。谢谢。这取决于名称存储的位置 最好是确保模型有名称,其他任何解决方案都是打破MVC模式,因为视图永远不应该访问模型不包含的任何信息 但是,如果无法修改模型,请创建一个使用id获取名称的

因此,我认为:

<%= Html.Encode(Model.STPData.ProjectName)%>

现在,假设我没有使用
ProjectName
作为字符串,而是使用
ProjectId
。如何使其显示Id对应的文本字符串?包含所有文本/值对的下拉列表-我可以生成,但它不存储在任何地方


我被难住了。谢谢。

这取决于名称存储的位置

最好是确保模型有名称,其他任何解决方案都是打破MVC模式,因为视图永远不应该访问模型不包含的任何信息


但是,如果无法修改模型,请创建一个使用id获取名称的方法,并将其环绕在id变量周围。

如果视图需要显示信息,请修改视图模型以包含此信息,然后只需:

<%= Html.Encode(Model.ProjectName)%>

其中,控制器有责任填充此视图模型属性,这样视图就不会想知道从何处获取此信息,因为这不是它的责任