确认消息框中的ASP.NET MVC ViewBag

确认消息框中的ASP.NET MVC ViewBag,asp.net,asp.net-mvc,razor,confirm,viewbag,Asp.net,Asp.net Mvc,Razor,Confirm,Viewbag,我正在使用存储过程将消息传递到控制器中的viewbag中 值字符串“订单无效”存储在sql存储过程中,然后通过模型传递到控制器 然后,我将此模型值传递到ViewBag中以在视图中使用,但是当我调用确认消息框时,它在使用ViewBag时不会提示: 这不起作用(有ViewBag.Message): 保存更新和消息按钮 此消息确认框起作用,但不使用ViewBag <button type="submit" name="CreateEdit" value="Update Order" oncli

我正在使用存储过程将消息传递到控制器中的viewbag中

值字符串“订单无效”存储在sql存储过程中,然后通过模型传递到控制器

然后,我将此模型值传递到ViewBag中以在视图中使用,但是当我调用确认消息框时,它在使用ViewBag时不会提示:

这不起作用(有ViewBag.Message):

保存更新和消息按钮
此消息确认框起作用,但不使用ViewBag

<button type="submit" name="CreateEdit" value="Update Order" onclick="return confirm('Put Store Procedure Message here from ViewBag? ')">Save WHY!!!</button>
为什么保存!!!

您可以将此确认框与ViewBag一起使用吗?

您是否尝试将@添加到ViewBag中,如

<button type="submit" name="CreateEdit" value="Update Order" onclick="return confirm('@ViewBag.Message' + 'Put Store Procedure Message here')">Save Update and Message Button</button>
保存更新和消息按钮
?您需要:

<button type="submit" name="CreateEdit" value="Update Order" 
   onclick="return confirm('@ViewBag.Message')">Save Update and Message Button</button>
保存更新和消息按钮
注意ViewBag前面的@向Razor表示它正在使用ViewBag对象,单引号向浏览器表示这是一个JavaScript字符串。

您只是缺少了“@”

保存更新和消息按钮

为了做到这一点,请使用非突兀的方式将JavaScript与html分离

您可以将邮件附加为数据属性,然后在确认邮件中读取:

<button id="btnSubmit" type="submit" name="CreateEdit" value="Update Order"  
     data-message="@ViewBag.Message">Save WHY!!!</button>

$(function(){

    $( "#btnSubmit" ).click(function() {
      var message = $(this).data('message');
      return confirm(message)
    });

})
为什么保存!!!
$(函数(){
$(“#btnsupmit”)。单击(函数(){
var message=$(this.data('message');
返回确认(消息)
});
})
这还提供了允许JavaScript位于可以缩小的外部文件中的好处


这将不起作用,因为如果您的viewbag值不包含在引号之间,则会被视为JS变量名,如
'@viewbag.Message Put Store Procedure Message here'
,这是一种很好的方法,将数据与实现分离。这确实非常好。我尝试使用javascript,但失败了,我链接回我的控制器并试图返回错误消息。
<button type="submit" name="CreateEdit" value="Update Order" onclick="return confirm('@ViewBag.Message ')">Save Update and Message Button</button>
<button id="btnSubmit" type="submit" name="CreateEdit" value="Update Order"  
     data-message="@ViewBag.Message">Save WHY!!!</button>

$(function(){

    $( "#btnSubmit" ).click(function() {
      var message = $(this).data('message');
      return confirm(message)
    });

})