Dotnet9站長:使用WTM幾天后的記錄總結(jié)!
?用了一段時間WTM框架,寫寫遇到的問題和解決方案吧。
1、自定義用戶,新增用戶登錄失敗
其實可以看WTM自定義用戶說明,在框架用戶類基礎(chǔ)上擴展字段,copy的文檔上代碼:
using?System.ComponentModel.DataAnnotations;
using?System.ComponentModel.DataAnnotations.Schema;
using?WalkingTec.Mvvm.Core;
namespace?YourNameSpace.Models
{
????[Table("FrameworkUsers")]
????public?class?MyUser?:?FrameworkUserBase
????{
????????[Display(Name?=?"附加信息1")]
????????public?string?Extra1?{?get;?set;?}
????????[Display(Name?=?"附加信息2")]
????????public?string?Extra2?{?get;?set;?}
????}
}
新增用戶登錄失敗,上面的文檔鏈接也有說明,直接copy過來:
?唯一需要修改一下的就是框架的登陸是MD5驗證的,所以當(dāng)你添加MyUser之前,記得加上一句Entity.Password = Utils.GetMD5String(Entity.Password);把密碼MD5加密一下
站長沒有仔細看文檔,只記得有這段代碼,還在DotNet Core WTM 交流群【694148336】里問了,謝謝群友的解答。
注:擴展用戶,只需要在后端新增用戶的Add接口上加上上面那句代碼,用于將密碼經(jīng)過MD5加密后存儲,在前端登錄時,后端會使用MD5加密后的密碼與數(shù)據(jù)庫對比
2、表格查詢條件中的時間選擇,能不能精確到秒?
根據(jù)實體類生成前后端代碼時,選擇DateTime類型的屬性作為搜索條件,默認選擇效果如下:

有些業(yè)務(wù),比如日志查詢,可能一分鐘產(chǎn)生幾百上千條,我要精確查找,效果如下:

選擇日期后【年-月-日】,可以點擊彈出控件的右下角【選擇時間】,就可以選擇時間了【時:分:秒】,而實現(xiàn)這個效果,在WTM框架上可以很方便實現(xiàn):
后端只需要在查詢時間的屬性上添加特性【[DataType(DataType.DateTime)]】

前端在時間范圍控件上添加showtime屬性即可:

這里也得感謝萬能的DotNet Core WTM 交流群群友解答【694148336】
3、控制器Action攔截日志,能只記錄異常日志嗎?
生成框架代碼時,未勾選只記錄異常日志,那么框架會將Action的每次調(diào)用都記錄入庫:

實際項目上,沒必要記錄這么詳細,只記錄Information日志或者異常日志即可,記太多不方便查找,也占數(shù)據(jù)庫空間,怎么修改呢?原文檔中建議修改appsettings.json的LogExceptionOnly屬性即可,實際操作時不生效的。
LogExceptionOnly:當(dāng)啟用日志時,是否只記錄異常
這個時候,站長又厚著臉皮在DotNet Core WTM 交流群【694148336】**求解,謝謝開源框架WTM作者,也是群主劉亮大大解惑。
框架升級很及時,可能文檔還未更新,現(xiàn)在實現(xiàn)上面的需求只需要像下面截圖中修改即可:

使用了WTM框架,大大提高了站長的項目開發(fā)效率,不只是免去了重造權(quán)限管理模塊的輪子,而且開發(fā)一個新功能,只需要在Model中添加一個實體類,然后使用框架的代碼生成器,就一鍵生成前后端代碼了,實在是方便之極。
站長在不斷實戰(zhàn)摸索幾天后,實在是因為WTM太優(yōu)秀,上面記錄的三點大部分還是因為個人技術(shù)不精的緣故,實在是找不出什么缺點了。
最后
站長工作中前端主要還是以React為主,開源項目lqclass.com前端計劃采用Vue,生成框架代碼時,只需要如下修改即可:

Vue前端和React差不多,風(fēng)格有點小差別:

換前端問題不大,畢竟站長19年做b/s時,先接觸的vue,新公司才采用的React,沒啥大問題??。


副業(yè)剛需,沒有人能拒絕這個網(wǎng)站!

終于GitHub App 已支持簡體中文!
