C# 在Javascript中使用模型属性
使用ASP.net MVC 3/Razor,如何在脚本标记中包含布尔模型属性?以下是我所拥有的:C# 在Javascript中使用模型属性,c#,javascript,asp.net,asp.net-mvc,razor,C#,Javascript,Asp.net,Asp.net Mvc,Razor,使用ASP.net MVC 3/Razor,如何在脚本标记中包含布尔模型属性?以下是我所拥有的: <script type="text/javascript"> $(document).ready(function () { var claimFlagged = "@Model.Flagged"; // More javascript $(文档).ready(函数(){ var claimFlagged=“@Model.Flagged”;
<script type="text/javascript">
$(document).ready(function () {
var claimFlagged = "@Model.Flagged";
// More javascript
$(文档).ready(函数(){
var claimFlagged=“@Model.Flagged”;
//更多javascript
如何将claimFlagged设置为Model.Flagged中的值?是否尝试删除引号:
<script type="text/javascript">
$(document).ready(function () {
var claimFlagged = '@(Model.Flagged)';
// More javascript
$(文档).ready(函数(){
var claimFlagged='@(Model.Flagged)';
//更多javascript
Razor不会绑定引用的属性。这将满足您的要求:
var claimFlagged = @(Html.Raw(Json.Encode(Model.Flagged)));
如果您只是尝试使用以下内容:
var claimFlagged = @(Model.Flagged);
它实际上会生成True
或False
(注意大写的T
和F
),而不是更自然的小写版本。使用@(Html.Raw(Json.Encode(…))
方法可以得到正确的小写输出
我假设您希望在JavaScript代码中直接使用布尔值,而不是字符串。如果您确实希望输出为字符串(即“true”
或“false”
),只需将代码用引号括起来:
var claimFlagged = "@(Html.Raw(Json.Encode(Model.Flagged)))";
可能是第一个版本的重复成功了!它只是在第一个版本上显示无效字符(.Why's this?@user2206127是的,我只是在这里测试以确保得到正确的结果。