小编Evg*_*vin的帖子

创建视图中可用的自定义帮助程序

我有太多的文字实用的方法,如MakeShortText(string text, int length),RemoveTags(string text),TimeAgo(DateTime date)等.我想从单独的帮助器访问它们,如下例所示:

@Text().MakeShortText(Model.Text, 10)
Run Code Online (Sandbox Code Playgroud)

是否可以创建此类扩展?或者我必须像这样为HtmlHelper做扩展:

@Html.Text().MaksShortText(Model.Text, 10)
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc view-helpers razor asp.net-mvc-3

5
推荐指数
1
解决办法
2028
查看次数

WebRequest奇怪的NotFound错误

我有两个不同的ASP.NET核心网站:admin和public.两者都在登台服务器和本地计算机上运行.

我将GET请求发送到不同的页面以确定不同页面的执行时间并遇到管理站点的问题:本地实例上的所有URL和登台总是返回404错误:

System.dll中出现未处理的"System.Net.WebException"类型异常

附加信息:远程服务器返回错误:(404)Not Found.

同时,浏览器中的相同请求通常会返回html页面.通过HttpWebRequest公共站点的请求也始终返回200状态代码(OK).请求代码我在这里.

我试图从浏览器请求添加所有标头和cookie,但它没有帮助.还尝试调试本地实例,发现请求执行时没有抛出异常.

有任何想法吗?

c# webrequest httpwebrequest http-status-code-404 asp.net-core

5
推荐指数
1
解决办法
1171
查看次数

WebForms ReportViewer数据源错误

我在表单上使用ReportViewer控件:

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <rsweb:ReportViewer ID="ReportViewer1" runat="server">
    </rsweb:ReportViewer>
</form>
Run Code Online (Sandbox Code Playgroud)

在页面代码文件中初始化的报告文件路径:

protected void Page_Init(object sender, EventArgs e)
{
    ReportViewer1.LocalReport.ReportPath = "Reports/Source/Untitled.rdlc";
}
Run Code Online (Sandbox Code Playgroud)

当报告呈现时,我得到了下一个错误:

A data source instance has not been supplied for the data source 'DataSet1'.
Run Code Online (Sandbox Code Playgroud)

连接正常(我测试过),当我尝试在MS SQL Server报表生成器中运行报表时 - 它也正常工作(生成报表).

asp.net reportviewer reporting-services

3
推荐指数
1
解决办法
8773
查看次数

只应验证最小/最大长度

我在ASP.NET MVC 4项目中使用FluentValidation框架进行服务器端和客户端验证.

是否有原生(非黑客)方式来验证字符串长度只有最大长度,或只有最小长度?

例如这样:

var isMinLengthOnly = true;
var minLength = 10;
RuleFor(m => m.Name)
    .NotEmpty().WithMessage("Name required")
    .Length(minLength, isMinLengthOnly);
Run Code Online (Sandbox Code Playgroud)

默认错误消息模板应该不是

'Name' must be between 10 and 99999999 characters. You entered 251 characters.

'Name' must be longer 10 characters. You entered 251 characters.

并且应该支持客户端属性,例如黑客RuleFor(m => m.Name.Length).GreaterThanOrEqual(minLength)(不确定它是否有效)不适用.

asp.net-mvc fluentvalidation asp.net-mvc-3 asp.net-mvc-4

3
推荐指数
1
解决办法
5440
查看次数

从局部视角看剃刀截面夹杂物

我在_Layout.cshtml中有脚本部分:

<html>
    <body>
    ...
        @RenderSection("FooterScript", required: false)
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我查看包含的"Index.cshtml" @Html.RenderPartial("LinksBlock", someModel).LinksBlock部分需要脚本文件"links.js".我想从我的局部视图中将links.js包含到FooterScript中,而不是从主视图(主视图不知道部分视图的依赖关系),我想确定,如果我在我的中使用多个LinksBlock查看,只包含1个links.js.可能吗?

asp.net-mvc razor asp.net-mvc-3

2
推荐指数
1
解决办法
2743
查看次数

MVC 3将模型项传递给@ Html.ActionLink文本?

如何将模型项传递给@ Html.ActionLink文本...

@Html.ActionLink( @item.GetLink(),"Controller", "Action" )
Run Code Online (Sandbox Code Playgroud)

这不起作用,如果我把它放在""它变成字符串.有任何想法吗?

c# asp.net asp.net-mvc razor asp.net-mvc-3

1
推荐指数
1
解决办法
2816
查看次数

西里尔字符的csv文件编码

我使用下一个代码从我的日志表生成.csv文件.

public ActionResult Index()
{
var records = loggingService.GetLogRecords(model.Since, model.For);

var mainSb = new StringBuilder();
mainSb.Append("Date,User name\n");

foreach (var logRecord in records)
{
    mainSb.Append(logRecord.Time.ToString("dd/MM/yyyy hh:mm:ss")).Append(",");
    mainSb.Append("\"").Append(logRecord.UserName ?? "").Append("\"").Append(",");
}
return File(Encoding.Unicode.GetBytes(mainSb.ToString()), "text/csv", string.Format("logs.csv"));
}
Run Code Online (Sandbox Code Playgroud)

用户名包含西里尔字符,当我打开我的.csv文件时 - 显示的是西里尔字符.我也尝试使用UTF8和UTF32编码.我应该使用Whan编码还是应该做哪些更改?

csv asp.net-mvc encoding

1
推荐指数
1
解决办法
2416
查看次数