2011-05-14 54 views
0

我製作了一個名爲twitter.cshtml的文件。在該頁面中,我的代碼如下所示:我的Razor語法有什麼問題?

@if (Request["TwitterUser"].IsEmpty()) 
{ 
    @Twitter.Search("microsoft") 
} 
else 
{ 
    @Twitter.Profile(Request["TwitterUser"]) 
} 

我收到了一條錯誤消息,指出在行中找到了Twitter - @Twitter.Profile(Request["TwitterUser"])

這是爲什麼?

+0

這是在WebMatrix?你使用MVC 3嗎? – 2011-05-14 12:10:48

+1

您應該將標題更改爲對問題更有意義的內容 – mcgrailm 2011-05-14 12:12:09

+1

您需要包含更多詳細信息。什麼是錯誤?你能告訴我們Twitter.Profile方法嗎?它是否包含在一個名稱空間中? – 2011-05-14 14:58:32

回答

0

刪除if和else塊內的@符號。

@if (Request["TwitterUser"].IsEmpty()) 
{ 
    Twitter.Search("microsoft") 
} 
else 
{ 
    Twitter.Profile(Request["TwitterUser"]) 
} 

您只需要在標記內部使用@符號,而不是在代碼塊內部(如if語句)。

@if (Request["TwitterUser"].IsEmpty()) 
{ 
    <div>@Twitter.Search("microsoft")</div> 
} 
else 
{ 
    <text>@Twitter.Profile(Request["TwitterUser"])</text> 
} 

在if塊,調用Twitter.Search()現在是一個HTML標記(標記)裏面,所以你需要使用@符號。在else循環中,<text>標記不會被渲染,它是一個特殊的標記,它告訴Razor進入標記模式。

+0

如果您在代碼塊中使用@Whatever.Something(),則會將該方法的結果輸出到頁面。事實上,他所做的並不是不正確的,儘管很難確定他期望的結果。 – Arrow 2012-07-13 12:35:56