Jquery声明int? asp.net mvc4中的变量

时间:2013-09-12 15:58:24

标签: c# jquery asp.net asp.net-mvc asp.net-mvc-4

美好的一天,

我有一个asp.net mvc4项目,我尝试在jquery中声明变量。接下来要解决的问题是:我的数据来自模型@Model.EducationProgramBachelorId,我的类中的属性EducationProgramBachelorId声明为int?。当我尝试在我的jquery代码中声明它时:

var progId = @Model.EducationProgramBachelorId;

R#告诉我int? University.EducationProgramBachelorId Syntax Error

我需要在if/else条件下使用此变量,我想在下一步做:

if(progId != null){
//Do something
}
else{
//Do something
}

我的问题是:

  1. 如何在jquery中声明int?变量?

  2. if语句true时我需要只写return,因为我的功能已关闭或其他原因?

  3. 修改

    以下是我的RAZOR页面的一部分:

    @model Models.Entities.University
    
    @Html.DropDownList("EducationProgramBachelorId", String.Empty)
                                @Html.ValidationMessageFor(model => model.EducationProgramBachelorId)
    
    <script type="text/jscript">
    
    $(document).ready(function () {
            var progId = @Model.EducationProgramBachelorId; //here is I have an error and function didn't work
            if(progId != null){
                return;
            }
            else{
                $.getJSON('/Administrator/ProgramList/' + 1, function (data) {
                    var items = '<option>Select a Program</option>';
                    $.each(data, function (i, program) {
                        items += "<option value='" + program.Value + "'>" + program.Text + "</option>";
                    });
                    $('#EducationProgramBachelorId').html(items);
                });
            }
    
        });
    
    </script>
    

2 个答案:

答案 0 :(得分:1)

如果为视图呈现可为空的int?属性,则不会输出任何内容。您可以在模型中创建一个将int?转换为普通int的新属性吗?如果EducationProgramBachelorId变量为null,则返回零。

public int EducationProgramBachelorJSInt
{
    get
    {
        return EducationProgramBachelorId.HasValue ? 
        EducationProgramBachelorId.Value : 0;
    }
}

然后您的JQuery代码将如下所示。

var progId = @Model.EducationProgramBachelorJSInt;
if(progId != 0){
    //Do something
}
else{
    //Do something
}

答案 1 :(得分:1)

你可以尝试,

 var progId = @(Model.EducationProgramBachelorId.HasValue ? Model.EducationProgramBachelorId : 0);

因此,如果Model.EducationProgramBachelorId为空,则其progId将设为0