.net - partialview - asp net core partial view



ASP.NET MVC強類型視圖編譯錯誤 (3)

你是否在Web.Config中正確地引用了OperatorModel ? 這將允許您顯式引用OperatorModel

<namespaces>
    <add namespace="My.Namespace"/>

或者,您可以將您的InheritsInherits為:

Inherits="System.Web.Mvc.ViewPage<My.Namespace.OperatorModel>"

另外,將模型對像傳遞給視圖時,請確保檢查null或返回一個空的OperatorModel

return View(operatorModel 
    ?? new OperatorModel() { Text = "I can has not found!" });

https://ffff65535.com

這是一個奇怪的。 我改變了一些東西(不知道是什麼),現在我的應用程序的視圖不會在運行時編譯。

視圖本身是強類型的:

<%@ Page Language="C#"
         MasterPageFile="~/Views/Shared/Site.Master"
         Inherits="System.Web.Mvc.ViewPage<MyNamespace.OperatorModel>" %>

當我訪問這個頁面時,它沒有編譯,說:

CS1061:'object'不包含'Log'的定義,也沒有找到接受'object'類型的第一個參數的擴展方法'Log'(你是否缺少using指令或程序集引用?

相當標準的錯誤。 相應的源代碼行是:

<%= Html.HiddenFor(model => model.Log) %>

當我看著編譯器生成的代碼時,我發現視圖的基類沒有強類型:

[System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
public class views_operator_create_aspx
    : global::System.Web.Mvc.ViewPage, // NOT STRONGLY TYPED
      System.Web.SessionState.IRequiresSessionState,
      System.Web.IHttpHandler {

所以我的問題是,是什麼導致視圖編譯器忽略視圖定義的Inherits屬性?

我應該指出,在同一個控制器上的其他視圖正在工作,他們有完全相同的頁面聲明,我已經在上面顯示。

編輯有沒有人知道在哪裡生成的源代碼文件居住,假設它被保存在某個地方?

編輯我找到了罪魁禍首(在我的答案下面),但我不知道為什麼發生這種情況。 如果有人能解釋我會很感激!


你沒有碰巧刪除那個存在於你的/ Views文件夾根目錄下的特殊的,神奇的web.config文件,是嗎?

[每個月至少抓到一次]


我發現,當我有這樣的奇怪的錯誤,有時如果我刪除所有我的文件的影子副本將清除它。 你會發現它在:

%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

替換上面這行中使用的任何版本的框架。 刪除所有與您的項目相對應的文件(或刪除目錄中的所有內容)。

您可能不得不關閉您的w3p服務,以確保它放棄所有文件,並且可以將其刪除。

另外,我相信你會在那裡找到你正在尋找的源代碼。





strongly-typed-view