我正在尝试在我的视图中创建一些静态函数,用于比较多个模型属性和登录用户,然后返回一个布尔值。然后视图在@if中使用布尔值来有条件地显示部分视图。
我考虑过编写一个@Html辅助方法,但它看起来只是返回字符串。目前我在视图中对硬编码进行了检查,但是我想提取它们以便我可以对它们进行单元测试。使用.net MVC 5进行此操作的最佳方法是什么?
答案 0 :(得分:0)
您可以为 System.Web.Mvc.WebViewPage 创建扩展程序,并在@this.CompareModelIdAndUserID();
答案 1 :(得分:0)
如果我需要帮助函数在我的所有视图中都可用,扩展WebViewPage将是一个很好的解决方案,但由于我只需要在一个视图中使用它们,我想出了如何使辅助函数正常工作。
助手类:
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)
}