Asp.net mvc 如果语句类型不存在,则Razor不存在

Asp.net mvc 如果语句类型不存在,则Razor不存在,asp.net-mvc,razor,Asp.net Mvc,Razor,我正在获取当前内容中不存在的refType。我将它作为参数传入,所以我不确定为什么不能使用它 调用函数 $.each(references, function (index, item) { console.log(item); $(".references-list ol").append(referenceTmpl(item.Text, item.Link, item.RegimensCommaList, referenceIndex++, item.GuidelineId,

我正在获取当前内容中不存在的refType。我将它作为参数传入,所以我不确定为什么不能使用它

调用函数

$.each(references, function (index, item) {
    console.log(item);
    $(".references-list ol").append(referenceTmpl(item.Text, item.Link, item.RegimensCommaList, referenceIndex++, item.GuidelineId, item.GuidelineExternalReference, item.Type));
    buildReferences();
});

cshtml

function referenceTmpl(text, link, regimens, index, guidelineId, guidelineExternalReference,type) {
        var refType = type;
        @if (Model.Editable) {
            <text>var refDel = "<a href='#' class='glyphicon glyphicon-trash delete-reference' title='Delete'></a>";</text>
            if (refType = 'AMode')
            {
                <text>var refEdit = "";</text>
            }
            else
            {
                <text>var refEdit = "<a href='#' data-index='" + index + "' class='glyphicon glyphicon-edit edit-reference' title='Edit'></a>";</text>
            }

        } else {
            <text>var refDel = "";</text>
            <text>var refEdit = "";</text>
        }

    if (type == "A-Mode"){
        refEdit = "";
    }
}
函数引用mpl(文本、链接、方案、索引、指南ID、指南外部引用、类型){
var refType=type;
@如果(模型可编辑){
var refDel=“”;
if(refType='AMode')
{
var refEdit=“”;
}
其他的
{
var refEdit=“”;
}
}否则{
var refDel=“”;
var refEdit=“”;
}
如果(类型==“A模式”){
refEdit=“”;
}
}

在这行代码中
var refType=type将javascript变量分配给razor模板变量,但该变量不起作用

试试下面的代码

function referenceTmpl(text, link, regimens, index, guidelineId, guidelineExternalReference,type) {
        <text>
            var refType = type;
            var refEdit = "";
        </text>
        @if (Model.Editable) {
            <text>
                var refDel = "<a href='#' class='glyphicon glyphicon-trash delete-reference' title='Delete'></a>";

                if(refType != 'AMode'){
                    refEdit = "<a href='#' data-index='" + index + "' class='glyphicon glyphicon-edit edit-reference' title='Edit'></a>";
                }
            </text>
        } else {
            <text>
               var refDel = "";
               var refEdit = "";
            </text>
        }

        <text>
            if (type == "A-Mode"){
                refEdit = "";
            }
        </text>
}

@jerdine sabio I更新了帖子。仍然缺乏信息,我们不知道数据是什么。它来自哪里;脚本、控制器、模型。它是项的一部分。我认为,
if(refType='AMode')
必须是
if(refType==“AMode”)
。如果我将if语句移出该语句,我可以使其工作的一种方法是为什么我不能在该语句下添加一个呢@if@Jefferson我也没有看到返回任何数据的部分——没有返回字符串。您的.append无法工作,因为没有return语句。正确,有一个return语句。只是没有添加完整的函数,只是添加了问题部分。@Jefferson您尝试过上面的代码吗?我将变量声明转移到文本元素内部。调整了变量的分配方式。
function referenceTmpl(text, link, regimens, index, guidelineId, guidelineExternalReference,type) {
        <text>
            var refType = type;
            var refEdit = "";
        </text>
        @if (Model.Editable) {
            <text>
                var refDel = "<a href='#' class='glyphicon glyphicon-trash delete-reference' title='Delete'></a>";

                if(refType != 'AMode'){
                    refEdit = "<a href='#' data-index='" + index + "' class='glyphicon glyphicon-edit edit-reference' title='Edit'></a>";
                }
            </text>
        } else {
            <text>
               var refDel = "";
               var refEdit = "";
            </text>
        }

        <text>
            if (type == "A-Mode"){
                refEdit = "";
            }


            return refEdit+refDel;
        </text>
}