美好的一天,
我有一个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
}
我的问题是:
如何在jquery中声明int?
变量?
在if
语句true
时我需要只写return
,因为我的功能已关闭或其他原因?
修改
以下是我的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>
答案 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