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

时间:2015-03-09 14:23:27

标签: asp.net asp.net-mvc razor confirm viewbag

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

值字符串"订单无效"存储在sql存储过程中,然后通过模型传递给控制器​​。

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

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

<button type="submit" name="CreateEdit" value="Update Order" onclick="return confirm(ViewBag.Message + 'Put Store Procedure Message here')">Save Update and Message Button</button>

此消息确认框有效但不使用ViewBag。

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

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

4 个答案:

答案 0 :(得分:3)

你需要:

<button type="submit" name="CreateEdit" value="Update Order" 
   onclick="return confirm('@ViewBag.Message')">Save Update and Message Button</button>

注意ViewBag前面的@,向Razor表明它正在使用ViewBag对象和单引号向浏览器指示这是一个JavaScript字符串。

答案 1 :(得分:2)

为了做到这一点,从你的HTML中分离你的JavaScript是一种非突兀的方式。

您可以将消息作为数据属性附加,然后在确认消息中阅读:

<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)
    });

})

这也可以让您的JavaScript处于可以缩小的外部文件中。

<强> jsFiddle

答案 2 :(得分:1)

您是否尝试将@添加到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>

答案 3 :(得分:1)

你只是错过了&#34; @&#34;

<button type="submit" name="CreateEdit" value="Update Order" onclick="return confirm('@ViewBag.Message ')">Save Update and Message Button</button>