【问题标题】:ASP.NET MVC ViewBag in confirm message box确认消息框中的 ASP.NET MVC ViewBag
【发布时间】:2015-03-09 14:23:27
【问题描述】:

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

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

然后我将此模型值传递到要在视图中使用的 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 一起使用吗?

【问题讨论】:

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


    【解决方案1】:

    你需要:

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

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

    【讨论】:

      【解决方案2】:

      为了做到这一点,以不显眼的方式将 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)
          });
      
      })
      

      这也将提供允许您的 JavaScript 位于可以缩小的外部文件中的好处。

      jsFiddle

      【讨论】:

      • 这是一种很好的方法,可以将数据与实现分离。
      • 这确实很好。我尝试使用 javascript 但失败了,我正在链接回我的控制器并尝试返回错误消息。
      【解决方案3】:

      您只是缺少“@”

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

      【讨论】:

        【解决方案4】:

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

        ?

        【讨论】:

        • 这不起作用,因为如果您的 viewbag 值不包含在像这样的引号之间 '@ViewBag.Message Put Store Procedure Message here'
        猜你喜欢
        • 1970-01-01
        • 2013-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-10
        • 1970-01-01
        • 2012-11-04
        相关资源
        最近更新 更多