2014-03-26 106 views
0

在我創建了一個觀點,我有以下,但model.UserName無法識別:爲什麼需要查看using語句

@model AcmeMVC.Models.SelectUserRolesViewModel 
@{ 
    ViewBag.Title = "User Roles"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<h2>Roles for user @Html.DisplayFor(model => model.UserName)</h2> 

如果我添加:@using AcmeMVC.Models它會奏效。

但是,我有我的Views文件夾中的web.config此項:

<pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
    ..... 
    <add namespace="AcmeMVC" /> 
    <add namespace="AcmeMVC.Models" /> 
    ..... 

我認爲這將使它所以我並不需要using聲明,但我還是做了。

有沒有人有任何線索我在這裏可能會做錯嗎?

回答

1

修改此行

<h2>Roles for user @Html.DisplayFor(model => model.UserName)</h2> 

所以它是這樣

<h2>Roles for user @Html.DisplayFor(m=>m.UserName)</h2> 

@model是指令來指示要您的視圖中使用強類型的模型類。它不是對象的實例的引用。要訪問您的View模型,您可以使用表達式(即m=>m.Property

+0

謝謝。似乎現在正在工作。 –

+0

我確實感到非常驚訝,修復它。在DisplayFor中使用「model」不是對指令的引用,它只是當時的上下文變量。我一直這樣做,從來沒有遇到過這個問題。 –

相關問題