gpt4 book ai didi

c# - 一个简单的助手类不起作用

转载 作者:行者123 更新时间:2023-11-30 12:31:29 25 4
gpt4 key购买 nike

很抱歉问了这么简单的问题,但我花了很长时间来解决这个问题。最后,我决定问你。

让我们从代码库开始:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Navigation.Helpers
{
public static class NavigationBarSE
{
public static MvcHtmlString RenderNavigationBarSE(this HtmlHelper helper, String[] includes)
{
return new MvcHtmlString("Y U no Work??");
//NavTypeSE res = new NavTypeSE(includes);
//String ress = res.toString();
//return new MvcHtmlString(ress);

}
}
}

在原始形式中,此帮助程序需要返回一个由 NavTypeSE 类生成的字符串。但最后,为了得到一个结果,我只希望它为我返回一个字符串……但它并没有那样做……

在你问之前,我可以说,

<add namespace="Navigation.Helpers"/>

存在于我的 Views 文件夹中的 Web.config 文件中。

有关详细信息,我的 NavTypeSE 类如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Navigation.Helpers
{
//Creates a Navigation Menu Type which includes Previous, Next and Validate Buttons
public class NavTypeSE
{
Boolean pr, nt, vld;
Boolean Previous { get; set; }
Boolean Next { get; set; }
Boolean Validate { get; set; }
public NavTypeSE(Boolean Previous, Boolean Next, Boolean Validate)
{
this.pr = Previous;
this.nt = Next;
this.vld = Validate;
}
public NavTypeSE() { }

public NavTypeSE(String[] inc)
{
for(int i=0; i<inc.Length; i++)//foreach (String s in inc)
{
String s = inc[i]; // Don't need for foreach method.
if (s.Equals("previous")||s.Equals("Previous"))
{
this.pr = true;
}
else if (s.Equals("next") || s.Equals("Next"))
{
this.nt = true;
}
else if (s.Equals("validate") || s.Equals("Validate"))
{
this.vld = true;
}
else
{
this.pr = false; this.nt = false; this.vld = false;
}
}

public String toString()
{
return "Previous: " + this.pr + ", Next: " + this.nt + ", Validate: " + this.vld;
}
}
}

此外,在我看来,我将此 Helper 称为如下:

@{
String[] str = new String[] { "Previous", "next", "Validate" };
Html.RenderNavigationBarSE(str);
}

这只是一个项目的基础。我是 C# 和 ASP.NET MVC 平台的入门级。很抱歉占用您的时间。

最佳答案

您的 RenderNavigationBarSE 不会向 Response 中写入任何内容,只会返回一个 MvcHtmlString

因此您需要在方法调用之前放置一个 @ 以告诉 Razor 引擎您想要将返回的 MvcHtmlString 写入响应(否则在代码块内)只是执行你的方法并丢弃返回值)

@{
String[] str = new String[] { "Previous", "next", "Validate" };
}

@Html.RenderNavigationBarSE(str);

您可以阅读有关 Razor 语法的更多信息:

关于c# - 一个简单的助手类不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com