Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何避免函数中的重复dom if(countRefinements>1) { if(细化类型.ToString().ToLowerInvariant()!=“micro”) { //一些功能 } 其他的 { 开关(可枚举。范围(1,17)。包含(countdefinitions)) { 大小写正确: //一些功能 打破 案例错误: //一些功能 打破 打破 } } }_C#_Asp.net Mvc - Fatal编程技术网

C# 如何避免函数中的重复dom if(countRefinements>1) { if(细化类型.ToString().ToLowerInvariant()!=“micro”) { //一些功能 } 其他的 { 开关(可枚举。范围(1,17)。包含(countdefinitions)) { 大小写正确: //一些功能 打破 案例错误: //一些功能 打破 打破 } } }

C# 如何避免函数中的重复dom if(countRefinements>1) { if(细化类型.ToString().ToLowerInvariant()!=“micro”) { //一些功能 } 其他的 { 开关(可枚举。范围(1,17)。包含(countdefinitions)) { 大小写正确: //一些功能 打破 案例错误: //一些功能 打破 打破 } } },c#,asp.net-mvc,C#,Asp.net Mvc,我有这种情况。我需要避免将dom复制到代码中。如果开关中的条件为TRUE,则唯一的更改是添加一个类。如何解决这个问题?引入一个变量来保存CSS类。然后根据您的条件附加到此变量。最后,只渲染一次 以下示例(Razor)仅演示如何根据一个条件呈现“ClassicConditionIsTrue”或“ClassicConditionIsFalse”: if (countRefinements > 1) { if (refinementType.ToString().ToL

我有这种情况。我需要避免将dom复制到代码中。如果开关中的条件为TRUE,则唯一的更改是添加一个类。如何解决这个问题?

引入一个变量来保存CSS类。然后根据您的条件附加到此变量。最后,只渲染一次

以下示例(Razor)仅演示如何根据一个条件呈现“ClassicConditionIsTrue”或“ClassicConditionIsFalse”:

 if (countRefinements > 1)
    {
        if (refinementType.ToString().ToLowerInvariant() != "micro")
        {
            <div class="refinementContainer refinementmacro">
                //some functions
            </div>
        }

        else
        { 
            switch (Enumerable.Range(1, 17).Contains(countRefinements))
            {
                case true:
                    <div class="refinementContainer classIfConditionIsTrue refinementmicro">
                       //some functions
                    </div>
                    break;

                case false:
                    <div class="refinementContainer refinement@(refinementType.ToString().ToLowerInvariant())" data-dimension="@(refinementType.ToString().ToLowerInvariant())">
                        <div class="refinementContainer classIfConditionIsFalse refinementmicro">
                            //some functions
                        </div>
                    break;
                    </div>
                    break;
            }


        }
    }
@{
//TODO:处理“宏”,如果为false,则创建外部div
字符串cssClasses=“refinementContainer refinementmicro”;

如果(countRefinements>=1&&countRefinements,您可以使用Razor语法来简化代码。方法是在将其呈现为HTML代码之前检查合适的类名。 参考:

@{
//在cshtml页面的顶部声明此项
var className=“精炼容器”;
if(countRefinements>1&&!string.IsNullOrWhiteSpace(refinementType.ToString())
{
如果(细化类型.ToString().ToLower()!=“micro”)
{
className+=“精炼宏”;
}

else if(countRefinements>=1&&countRefinements为什么你要使用
开关(bool)case true case false
而不是
if else
?重复dom是什么意思?(视图中没有生成重复的html)另外,为什么
可枚举范围(1,x).Contains(y)
而不是
y
?这段代码感觉太过工程化,以至于我个人会重新评估其中做出的每一个决定,以确认代码实际上是必要的和有效的。但这需要应用程序和需求的上下文知识。
@{
   // TODO: handle "macro", create outer div if false
   string cssClasses = "refinementContainer refinementmicro";
   if (countRefinements >= 1 && countRefinements <= 17) {
       cssClasses += " classIfConditionIsTrue";
   }
   else {
       cssClasses += " classIfConditionIsFalse";
   }
}

<div class="@cssClasses">
    // some functions
</div>
@{
    //declare this on top of your cshtml page
    var className = "refinementContainer";

    if (countRefinements > 1 && !string.IsNullOrWhiteSpace(refinementType.ToString()))
    {
        if (refinementType.ToString().ToLower() != "micro")
        {
            className += " refinementmacro";
        }
        else if (countRefinements >= 1 && countRefinements <= 17)
        {
            className += " classIfConditionIsTrue refinementmicro";
        }
        else
        {
            className += " classIfConditionIsFalse refinementmicro";
        }
    }
}
<div class="@(className)">
   //some functions
</div>