我有一个定义如下的方法。
public static MvcHtmlString DisplayReadOnlyGrid(
this HtmlHelper htmlHelper,
string containerId,
MvcHtmlString innerHtml)
{
try
{
var outerDiv = new TagBuilder("DIV");
outerDiv.AddCssClass("ML5 MT5 MR5");
outerDiv.MergeAttribute("id", containerId);
if (innerHtml != null && !innerHtml.Equals(string.Empty))
{
outerDiv.InnerHtml = innerHtml.ToString();
}
return MvcHtmlString.Create(outerDiv.ToString());
}
catch
{
throw;
}
}
当我调用此方法时,我需要以下格式:
DisplayReadOnlyGrid(containerId="mycontainerid", innerHtml="innerhtml")
我该怎么做?
答案 0 :(得分:3)
试试这个:
html.DisplayReadOnlyGrid(containerId: "mycontainerid", innerHtml: "innerhtml");
您可以按任意顺序传递参数,并且可以传递位置参数和命名参数,但是由于显而易见的原因,命名参数必须遵循位置参数。
答案 1 :(得分:1)
由于C#4.0开箱即用,请参阅here。你无需做任何事情来启用它 但请注意,正确的语法使用冒号,而不是等号:
helper.DisplayReadOnlyGrid(containerId: "mycontainerid", innerHtml: "innerhtml");
如果您使用的是旧版本,则根本无法执行此操作。
答案 2 :(得分:0)
查看MSDN here。
使用命名参数的格式如下:
helper.DisplayReadOnlyGrid(containerId: "mycontainerid", innerHtml: "innerhtml");
答案 3 :(得分:0)
方法说明:
首先是extension method。参数中的关键字this
值得注意。确切地说,它是HtmlHelper
其次参数:它们是Named parameters(C#4.0的功能),您可以调用该方法:
helper.DisplayReadOnlyGrid(containerId:"mycontainerid", innerHtml:"innerhtml")
命名参数允许您以任何顺序指定参数,并且对默认参数也有帮助,这也是C#4.0中的新功能