我很好奇如何处理将aspx页面上的可为空的模型信息设置为JavaScript变量。我正在使用MVC3 RC,但我敢肯定这是微不足道的,而且我还缺少一些东西。

给出以下代码(同样,在我的aspx视图中):

var myFloat = <%: Model.MyNullableFloat %>;


如果SelectedAudience为null,则写入页面的内容是:

var myFloat = ;


我要写的是:

var myFloat = null;


目前,我有一些难看的逻辑:

    var myFloat = null;
    <%
        if(Model.MyNullableFloat != null) {
    %>
            myFloat = <%: Model.AdGroup.MyNullableFloat %>;
    <%
        }
    %>


有没有更清洁的想法?

谢谢

最佳答案

您可以使用conditional operator

var myFloat = <%: Model.MyNullableFloat.HasValue
    ? Model.MyNullableFloat.Value.ToString()
    : "null"%>;


请记住,两个条件都需要返回相同的类型,因此如果要返回ToString(),则必须对结果进行"null"

09-15 17:30