第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ASP Net Core - 通用頁面模型

ASP Net Core - 通用頁面模型

C#
富國滬深 2023-04-29 18:12:27
我開始學(xué)習(xí)使用 ASP Net Core 編程。在花一些時間使用 Asp Net Core Identity 時,我想實(shí)現(xiàn)一個自己的登錄頁面以用于學(xué)習(xí)目的。不幸的是,如果您想使用包含通用參數(shù)的頁面模型,如 Asp Net Core Identity 的 Login.cshtml.cs,現(xiàn)在我有一些問題要了解依賴注入是如何工作的。在源代碼中,有兩個類派生自登錄頁面的頁面模型:[AllowAnonymous][IdentityDefaultUI(typeof(LoginModel<>))]public abstract class LoginModel : PageModel和internal class LoginModel<TUser> : LoginModel where TUser : class我讀到 SignInManager 類處理 Identity 中的登錄和注銷過程。但是因此我想我必須使用內(nèi)部類。但我不明白 Asp Net Core 標(biāo)識符如何使用內(nèi)部類而不是抽象類,或者它可能是這樣?!即使在剃須刀頁面中,也只有抽象類用作模型:@page@model LoginModel@{ViewData["Title"] = "Log in";}有沒有人可以向我解釋我必須做什么才能像內(nèi)部 LoginModel 類一樣為頁面模型使用通用參數(shù)?我認(rèn)為這對于其他一些情況也可能非常有用。
查看完整描述

1 回答

?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個贊

我想我找到了解決問題的方法。內(nèi)部類似乎是由 PageModel 約定初始化的,可以在 IdentityPageModelConvention 源文件中找到:


public void Apply(PageApplicationModel model)

    {

        var defaultUIAttribute = model.ModelType.GetCustomAttribute<IdentityDefaultUIAttribute>();

        if (defaultUIAttribute == null)

        {

            return;

        }


        ValidateTemplate(defaultUIAttribute.Template);

        var templateInstance = defaultUIAttribute.Template.MakeGenericType(typeof(TUser));

        model.ModelType = templateInstance.GetTypeInfo();

    }

此方法似乎通過在抽象 LoginModel 類中定義的 IdentityDefaultUI 屬性來確定具有 TUser 通用屬性的內(nèi)部類:


[IdentityDefaultUI(typeof(LoginModel<>))]

public abstract class LoginModel : PageModel


查看完整回答
反對 回復(fù) 2023-04-29
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號