我有ASP.NET MVC项目。我在我的控制器中调用一个存储过程并将该结果导入我的viewdata:
var sp = callsp(parameter1, paramter2)
if(abovespcontainsnoresult)
{
viewdata["result"] = "This sp doesn't consists any results";
}
现在我必须将它传递给我的脚本函数。我有脚本,当我从下拉列表中选择列表时启用按钮:
$(document).ready(function () {
$("#button").change(function (e) {
if ($(this).val() != '') {
$("#button1").attr('disabled', false);
$("#button2").attr('disabled', false);
$("#button3").attr('disabled', false);
$("#button4").attr('disabled', false);
}
}
现在我要做的是将viewdata结果添加到此脚本并检查它是否为null。我试过这样:
$(document).ready(function () {
$("#button").change(function (e) {
if ($(this).val() != '' && ($(@ViewData["result"].ToString()) != ""))
{
$("#button1").attr('disabled', false);
$("#button2").attr('disabled', false);
$("#button3").attr('disabled', false);
$("#button4").attr('disabled', false);
}
}
但是如果添加这个条件,脚本就不起作用了。那么如何在我的脚本中检查viewdata结果并检查它是否为空?
答案 0 :(得分:2)
如果你把滴答滴答,它会起作用。
'@ViewData[result]'
如果是外部JS文件(脚本未在视图中编码),则无法正常工作
答案 1 :(得分:2)
将$(ViewData["result"].ToString())
的值存储到JavaScript变量中,然后在if
语句中使用该变量。
$(document).ready(function () {
$("#button").change(function (e) {
var result = $('@ViewData["result"].ToString()');
if ($(this).val() != '' && result !== '')
{
$("#button1").attr('disabled', false);
$("#button2").attr('disabled', false);
$("#button3").attr('disabled', false);
$("#button4").attr('disabled', false);
}
}
你最初是在正确的轨道上。