1 javascript c# asp.net-mvc json.net razor
我正在尝试在我的脚本中使用来自Razor的viewmodel.问题是,有时,由EF生成的具有循环值的复杂模型为空.
var skill = @Model.Skill1 != null ? "@Model.Skill1.SkillName" : "";
Run Code Online (Sandbox Code Playgroud)
当@ Model.Skill1不为null时,我可以使用@ Model.Skill1.SkillName.但如果@ Model.Skill1为null,则结果为
Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)
并且页面甚至不呈现.
即使未触发访问属性SkillName的条件,似乎也无法在代码中写入@ Model.Skill1.SkillName.
所以我试图将我的对象转换为Json对象,但这次我有循环值生成问题.
任何想法或方法绕过这个问题?
你正在混合语言.如果这是在您的JavaScript块中:
var skill = @Model.Skill1 != null ? "@Model.Skill1.SkillName" : "";
Run Code Online (Sandbox Code Playgroud)
然后你有两个服务器端语句.没有逻辑决定是否执行它们.所以他们都执行,第二个是NullReferenceException.
基本上,您正在尝试向客户端发出空引用,因此客户端可以检查它是否为空.但到那时你已经尝试取消引用它,因此错误.
进行空检查服务器端,只将结果发送到客户端代码.像这样的东西:
var skill = '@(Model.Skill1 != null ? Model.Skill1.SkillName : "")';
Run Code Online (Sandbox Code Playgroud)
在Razor的括号中包含一个值发射表达式@()意味着整个语句是服务器端代码,并且应该产生单个发出的值.
| 归档时间: |
|
| 查看次数: |
901 次 |
| 最近记录: |