我想創建一些靜態函數用於我的視圖,比較一些模型屬性和登錄用戶,然後返回一個布爾值。該視圖然後使用@if中的布爾值來有條件地顯示部分視圖。.net MVC 5視圖幫助函數返回布爾值
我想過編寫一個@Html輔助方法,但它看起來像那些只返回字符串。目前我在視圖中有硬編碼的檢查,但我想提取它們以便我可以對它們進行單元測試。 .net MVC 5的最佳做法是什麼?
我想創建一些靜態函數用於我的視圖,比較一些模型屬性和登錄用戶,然後返回一個布爾值。該視圖然後使用@if中的布爾值來有條件地顯示部分視圖。.net MVC 5視圖幫助函數返回布爾值
我想過編寫一個@Html輔助方法,但它看起來像那些只返回字符串。目前我在視圖中有硬編碼的檢查,但我想提取它們以便我可以對它們進行單元測試。 .net MVC 5的最佳做法是什麼?
視圖擴展WebViewPage將是一個很好的解決方案,如果我需要輔助功能是在我所有的觀點可用,但由於我只在一個視圖中需要它們,所以我想出瞭如何獲得輔助函數的工作方式。
Helper類:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MyProject.Models;
namespace MyProject.Helpers
{
public static class TransactionHelper
{
public static bool ShowAcceptDecline(TransactionStatus status, String transactionUserId, String currentUserId)
{
return status == TransactionStatus.PendingAcceptance && transactionUserId == currentUserId;
}
}
}
然後,我不知道是添加在視圖@using事情的關鍵:
@using MyProject.Helpers
@model MyProject.Models.Transaction
@if (TransactionHelper.ShowAcceptDecline(Model.Status, Model.UserId, User.Identity.GetUserId()))
{
@Html.Partial("_Pending", Model)
}
可以爲System.Web.Mvc.WebViewPage創建擴展,並調用它像@this.CompareModelIdAndUserID();