【问题标题】:Razor syntax - using two variables in stringRazor 语法 - 在字符串中使用两个变量
【发布时间】:2017-06-24 12:12:01
【问题描述】:
SomeObject record = new SomeObject();
record.value1 = 1;
record.value2 = "hello";

<td><input type="checkbox" id="indicator_@record.value1_@record.value2" /><td>

创建 id 为“indicator_1_hello”的复选框的正确 razor 语法是什么?

当尝试这种方式时,它说对象不包含 value1_ 的定义(可以理解),当我尝试“indicator_@record.value1@_@record.value2”时,如果有一个名为 _ not 的运行时错误存在于上下文中(同样,可以理解)。

编辑:

作为一个临时解决方案,我已经完成了:

SomeObject record = new SomeObject();
record.value1 = 1;
record.value2 = "hello";
var combined = String.Format("{0}_{1}", record.value1, record.value2);

<td><input type="checkbox" id="indicator_@combined" /><td>

我仍然很好奇您是否可以内联完成所有操作。

【问题讨论】:

    标签: c# razor


    【解决方案1】:
    @{
        // just for testing
        var record = new { value1 = "foo", value2 = "bar" };
    }
    
    <input type="checkbox" id="indicator_@( record.value1 + "_" + record.value2 )">
    

    给:&lt;input type="checkbox" id="indicator_foo_bar"&gt;

    只要确保您没有构建一个 ID,它会更好地由您的视图模型的自然层次结构自动生成。大多数情况下,您不需要在视图中手动构建 ID。

    【讨论】:

      【解决方案2】:

      如果您需要这样的东西,我建议将该字段(即 CheckboxID)添加到您的模型中并在服务器端填充它,然后再将其传递给视图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-12
        • 1970-01-01
        • 1970-01-01
        • 2017-02-15
        • 1970-01-01
        • 1970-01-01
        • 2012-05-14
        • 2016-11-14
        相关资源
        最近更新 更多