C# 我可以为Html助手调用具有多个参数的Lambda表达式吗?

C# 我可以为Html助手调用具有多个参数的Lambda表达式吗?,c#,asp.net,asp.net-mvc-3,lambda,html-helper,C#,Asp.net,Asp.net Mvc 3,Lambda,Html Helper,我可以在MVC3中创建这样的代码行吗 <%=Html.CustomHtmlTag(r => r.Add("One"), r.Add("Two")...).Render()%> r.Add(“一”),r.Add(“两”)…).Render()%%> 我试图找到并举例说明,但所有代码都是针对(r=>r.Add(“One”) 非常感谢您的帮助。您只需放上大括号,就可以用lambdas编写完整的函数 r => { r.Add("One"); r.Add("Tw

我可以在MVC3中创建这样的代码行吗

<%=Html.CustomHtmlTag(r => r.Add("One"), r.Add("Two")...).Render()%>
r.Add(“一”),r.Add(“两”)…).Render()%%>
我试图找到并举例说明,但所有代码都是针对
(r=>r.Add(“One”)


非常感谢您的帮助。

您只需放上大括号,就可以用lambdas编写完整的函数

r =>
{
    r.Add("One");
    r.Add("Two");
}

只需放上大括号,就可以用lambda编写完整的函数

r =>
{
    r.Add("One");
    r.Add("Two");
}

@VoidStar提供的答案是正确的,这里有一个更详细的例子

MVC代码

@Html.CustomHtmlTag(Model, x => { 
                                    Model.Add("One"); 
                                    Model.Add("Two");
                                    Model.Add("Three");
                                    Model.Add("Four");
                                }).Render()
型号

public class MyModel
{
    private readonly IList<string> _values = new List<string>();

    public void Add(string value)
    {
        _values.Add(value);
    }

    public string ValuesToString()
    {
        return string.Join(",", _values);
    }
}
公共类MyModel
{
私有只读IList_值=新列表();
公共空添加(字符串值)
{
_增加(价值);
}
公共字符串值stostring()
{
返回string.Join(“,”,_值);
}
}
HTML帮助程序

public static class MyMvcHelpers
{
    public static IMyClass CustomHtmlTag(this HtmlHelper helper, MyModel viewModel, Action<MyModel> action)
    {
        action.Invoke(viewModel);

        var expressionResult = viewModel.ValuesToString();

        return new MyClass(expressionResult);
    }
}
公共静态类MyMvcHelpers
{
公共静态IMyClass CustomHtmlTag(此HtmlHelper帮助器、MyModel viewModel、Action)
{
action.Invoke(viewModel);
var expressionResult=viewModel.ValuesToString();
返回新的MyClass(expressionResult);
}
}
渲染类

public interface IMyClass
{
    MvcHtmlString Render();
}

public class MyClass : IMyClass
{
    private readonly string _value;

    public MyClass(string value)
    {
        _value = value;
    }

    public MvcHtmlString Render()
    {
        return new MvcHtmlString(string.Concat("<h1>", _value, "</h1>"));
    }
}
公共接口IMyClass
{
MvcHtmlString Render();
}
公共类MyClass:IMyClass
{
私有只读字符串_值;
公共MyClass(字符串值)
{
_价值=价值;
}
公共MvcHtmlString Render()
{
返回新的MvcHtmlString(string.Concat(“,_value,”));
}
}
结果

<h1>One,Two,Thee,Four</h1>
1,2,e,4

如果你得到了一个更详细的例子,@VoidStar提供的答案是正确的

MVC代码

@Html.CustomHtmlTag(Model, x => { 
                                    Model.Add("One"); 
                                    Model.Add("Two");
                                    Model.Add("Three");
                                    Model.Add("Four");
                                }).Render()
型号

public class MyModel
{
    private readonly IList<string> _values = new List<string>();

    public void Add(string value)
    {
        _values.Add(value);
    }

    public string ValuesToString()
    {
        return string.Join(",", _values);
    }
}
公共类MyModel
{
私有只读IList_值=新列表();
公共空添加(字符串值)
{
_增加(价值);
}
公共字符串值stostring()
{
返回string.Join(“,”,_值);
}
}
HTML帮助程序

public static class MyMvcHelpers
{
    public static IMyClass CustomHtmlTag(this HtmlHelper helper, MyModel viewModel, Action<MyModel> action)
    {
        action.Invoke(viewModel);

        var expressionResult = viewModel.ValuesToString();

        return new MyClass(expressionResult);
    }
}
公共静态类MyMvcHelpers
{
公共静态IMyClass CustomHtmlTag(此HtmlHelper帮助器、MyModel viewModel、Action)
{
action.Invoke(viewModel);
var expressionResult=viewModel.ValuesToString();
返回新的MyClass(expressionResult);
}
}
渲染类

public interface IMyClass
{
    MvcHtmlString Render();
}

public class MyClass : IMyClass
{
    private readonly string _value;

    public MyClass(string value)
    {
        _value = value;
    }

    public MvcHtmlString Render()
    {
        return new MvcHtmlString(string.Concat("<h1>", _value, "</h1>"));
    }
}
公共接口IMyClass
{
MvcHtmlString Render();
}
公共类MyClass:IMyClass
{
私有只读字符串_值;
公共MyClass(字符串值)
{
_价值=价值;
}
公共MvcHtmlString Render()
{
返回新的MvcHtmlString(string.Concat(“,_value,”));
}
}
结果

<h1>One,Two,Thee,Four</h1>
1,2,e,4