首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在asp.net mvc中检索Java script中的模型属性值?

无法在asp.net mvc中检索Java script中的模型属性值?
EN

Stack Overflow用户
提问于 2020-07-20 23:10:56
回答 3查看 93关注 0票数 0

我试图访问视图端的模型属性,但它不能像预期的那样工作。以下是我的代码

代码语言:javascript
复制
@{
    ViewBag.Title = "Manage";
    var message = Model.errorMessage;

}

在我看来,在上面的代码中,从控制器端传递的值是在var消息中接收的。问题出在这里:

代码语言:javascript
复制
if ('@message' == "AlreadyTaken") {
                    $("#alertSection").show();
                }

它被执行为

代码语言:javascript
复制
 if ('' == "AlreadyTaken") {
                $("#alertSection").show();
            }

我试了这么多办法,但都徒劳无功。

EN

回答 3

Stack Overflow用户

发布于 2020-07-20 23:36:14

您需要将值放入JS可以访问的内容中,例如

代码语言:javascript
复制
@{
    ViewBag.Title = "Manage";
    var message = Model.errorMessage;

}

<input id="myMessage" type="text" value="@message" hidden />

然后在JS中

代码语言:javascript
复制
if($('#myMessage').val() == 'AlreadyTaken'){
    $("#alertSection").show();
}

假设您正在对document ready启动JS。

票数 0
EN

Stack Overflow用户

发布于 2020-07-20 23:59:26

如果完整的cshtml代码类似于下面的代码

代码语言:javascript
复制
@{
    ViewBag.Title = "Home Page";
    var message = Model.errorMessage;
}

<script type="text/javascript">
    if ('@message' == "AlreadyTaken") {
        $("#alertSection").show();
    }
</script>

将javascript部分呈现为

代码语言:javascript
复制
 if ('' == "AlreadyTaken") {
            $("#alertSection").show();
        }

包括:

  • Model.errorMessage is null
  • Model.errorMessage is a null string
  • Model.errorMessage是其ToString()方法调用会导致null或空字符串的对象的实例

如果不是这样,可能中间有一些代码会更改message的值

票数 0
EN

Stack Overflow用户

发布于 2020-07-20 23:18:49

下面的代码在服务器端执行。

代码语言:javascript
复制
@{
    ViewBag.Title = "Manage";
    var message = Model.errorMessage;

}

但是,下面的代码是在客户端执行的javascript代码。

代码语言:javascript
复制
if ('@message' == "AlreadyTaken") {
                    $("#alertSection").show();
                }

客户端不知道@message是什么。为了实现这一点,您需要将message变量公开为javascript字符串。

代码语言:javascript
复制
<script>
 let javascriptMessage = '@Html.Raw(message)'
 if(javascriptMessage == 'AlreadyTaken') {
     $("#alertSection").show();
 }
</script>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62998478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档