Asp.net 从控制器访问视图中的div

Asp.net 从控制器访问视图中的div,asp.net,ajax,runatserver,Asp.net,Ajax,Runatserver,在我的布局页面中,我有以下html: <div id="ajax-loading" class="global-loading-image" runat="server"> <img src="/content/travelbill/img/small-loading-image.gif"/> </div> 但我得到的错误是,加载和ajax在当前上下文中不存在。我做错了什么?那是在旧的ASP.NET页面中。在ASP MVC中,您没有Vie

在我的布局页面中,我有以下html:

 <div id="ajax-loading" class="global-loading-image" runat="server">
        <img src="/content/travelbill/img/small-loading-image.gif"/>
 </div>

但我得到的错误是,加载和ajax在当前上下文中不存在。我做错了什么?

那是在旧的ASP.NET页面中。在ASP MVC中,您没有
ViewState
isPostBack
runat=“server”
可以使用
ViewBag
ViewData
将变量从控制器传递到视图,如:

控制器:

ViewBag.Name = "My Name";
ViewData["Name"]  = "My Name";
@ViewBag.Name
@ViewData["Name"]
查看:

ViewBag.Name = "My Name";
ViewData["Name"]  = "My Name";
@ViewBag.Name
@ViewData["Name"]
我觉得你没必要这么做。您可以使用一个操作来完成需要完成的任务,并使用JavaScript通过AJAX请求该操作。然后,您可以使用JavaScript根据需要显示和隐藏加载:

function LoadAjax(containerId, url, params){
  //Set loading in container
  $(containerId).html('<img src="loading.gif" alt="loading"/>');
  //Do the request
  $.ajax({
    type: 'POST',
    dataType: "html",
    url: url,
    data: params,
    success: function(data){
     // show response inside container (removes loading)
     $(containerId).html(data);
    },
    error: function( jqXHR, textStatus, errorThrown){
      // show error inside container (removes loading)
      $(containerId).html(textStatus);
    }
  });
}
函数LoadAjax(containerId、url、params){
//设置集装箱装载
$(containerId).html(“”);
//做请求
$.ajax({
键入:“POST”,
数据类型:“html”,
url:url,
数据:params,
成功:功能(数据){
//在容器内显示响应(删除加载)
$(containerId).html(数据);
},
错误:函数(jqXHR、textStatus、errorshown){
//在容器内显示错误(删除加载)
$(containerId).html(textStatus);
}
});
}
页面加载时,将显示加载图像。您将需要Jquery来使用我的代码。希望能有帮助