我使用存储过程将消息传递到控制器中的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一起使用吗?
答案 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>