我的網絡應用程序是基於另一種解決方案構建的解決方案。基礎解決方案旨在成爲多種產品的平臺。大多數情況下,這可以正常工作,但當我創建特定於產品的視圖時會發生奇怪的事情。爲什麼我的ascx文件不能找到屬性後面的代碼?
我使用ViewUserControl<SomeViewModel>
爲我的代碼在類後面。在我的代碼背後,我可以訪問this.Model
以及我期望從這個課程中學到的所有其他好東西。但是在我的ascx文件中,當我嘗試訪問this.Model
或ViewUserControl
中定義的其他屬性時,會出現紅色的波浪線。當我嘗試訪問我的代碼中直接定義的屬性時,我也會得到紅色的squiggley線。
更有趣的是,我從這裏沒有得到任何真正的錯誤。該視圖在運行時呈現得很好,不會給我任何構建錯誤。但我的ascx文件認爲會出現錯誤。如果我在平臺名稱空間中創建了完全相同的視圖,它工作正常。沒有紅色的波浪。
我覺得這真的很煩人。它不是以任何方式顯示屏幕,但是如果我要使用帶有intellisense和所有爵士樂的IDE,我一定會喜歡它正常工作,並拿起應該在那裏的屬性。
有沒有其他人遇到過這個問題?你知道解決這個問題的方法嗎?
謝謝!
編輯
有人要求我寄一些代碼。下面的代碼背後:
namespace MyProject.MyProduct.Web.Views
{
public class EditSearch : ViewUserControl<SearchResultsViewModel>
{
public bool IsSearchTypeA()
{
...............
}
public bool IsSearchTypeB()
{
...............
}
}
}
而且這裏是我的ascx:
<%
if (!this.IsSearchTypeB())
{
string categoryPageTitle = this.Model.SearchWidgetParameters.Search.CategoryPageTitle;
string categoryPageUrl = this.Model.SearchWidgetParameters.Search.Filters.CategoryPageUrl;
if (!string.IsNullOrEmpty(categoryPageUrl))
{
%> <div id="coid_website_backtoCategoryPageLink"> <%
string tocGuid = this.Model.SearchWidgetParameters.Search.Filters.TocGuid;
if (!string.IsNullOrEmpty(tocGuid))
{
categoryPageUrl += "?guid=" + tocGuid;
}
var backToLink = new HyperLink();
if (this.IsSearchTypeA())
{
backToLink.Text = "Edit Search";
}
else
{
backToLink.Text = "Back to " + TranslatedHtmlTextWriter.Translate(categoryPageTitle);
}
backToLink.NavigateUrl = TransactionOperations.AddContextToUrl(categoryPageUrl.StartsWith("/Browse/") ? categoryPageUrl : "/Browse/" + categoryPageUrl,
WebsiteTransitionType.Default, // Requested: CategoryPage
TransactionOperations.DefaultContextData);
backToLink.RenderControl(this.Writer);
%>
</div>
<%
}
}
%>
編輯
對於那些你們誰是告訴我,ASP.NET MVC不能或不使用代碼在後面,我很抱歉,這是馬術曲棍球。這個項目已經存在多年,並且有一個廣泛使用的產品在其上運行。我的產品只是剛剛進入平臺。平臺解決方案使用遍佈整個地方的代碼,並且工作正常。事實上,在我的產品解決方案中,它在運行時也能正常工作,我只是遇到了問題,即我的ascx文件似乎並不瞭解我的代碼。此外,ViewUserControl
是System.Web.MVC
類。你還會告訴我背後的代碼不在ASP.NET MVC中使用嗎?
你不應該在ASP.NET MVC中使用代碼。你可以發佈一些代碼嗎? – 2011-02-18 15:46:03
這使我很困惑。如果不使用代碼,那麼我將如何訪問我的模型的屬性?後面的代碼是我指定我的模型屬於某種類型的地方。我不知道我還能得到什麼。 – Samo 2011-02-18 16:16:53
您使用的是什麼版本的MVC?我正在使用MVC 3,我沒有看到任何代碼背後的文件。我稱之爲「後面的代碼」是Controller和Model。 – 2011-02-18 16:47:34