【问题标题】:calling controller from method from JavaScript从 JavaScript 方法调用控制器
【发布时间】:2012-10-14 11:37:36
【问题描述】:

我正在使用 MVC 3 razor 开发一个网站,其中我有以下情况:

  1. 控制器方法:
public ActionResult MyControllerMethod(int parameter){
    ''go to bd a do some staff
    IList<My_Custom> datafromDB = MyService.GetData(parameter);           

    'returns to my string tuped view
    return View(datafromDB );
}
  1. 我在其中使用 JavaScript 的强类型视图:
       @model IList<My_Custom>
        
        <script type="text/javascript">
        
         function getData()
         { 
           var parameter = document.getElementById('myParamater').value;  
    
           $.get('/MyController/MyControllerMethod/' + parameter, function (data) {
                                   
              loadData();
    
           }
           );
       }
       
        function loadData() 
        { 
          clearData();
              
          datos = @Html.Raw(Json.Encode(Model));  
          
          //do some stuff with datos
          
        }
    
        </script>

对控制器的 JavaScript 调用工作正常,但我的问题是字符串类型的视图似乎没有采用 @model 的新值,因此继续加载相同的信息。

虽然我已经调试过动作控制器,但它每次都返回不同的数据。 那么有没有办法刷新字符串类型视图的Model值呢?

我也尝试过处理那行的数据值

$.get('/MyController/MyControllerMethod/' + parameter, function (data) {

但我没有成功。

【问题讨论】:

    标签: javascript asp.net-mvc-3 razor


    【解决方案1】:

    您的操作返回视图,这就是为什么没有任何效果。你的代码是如何工作的:

    • 加载数据,然后在页面上生成带有 json 的视图
    • 向服务器发送请求并接收htmljson(所有这些数据都在内存中), 然后你从第一步访问json

    它必须如何工作:

    • 创建视图
    • 向服务器发送请求(另一种方法,返回Json
    • 访问data
    公共 ActionResult YourJsonAction(int 参数) { IList datafromDB = MyService.GetData(parameter); 返回 Json(datafromDB, JsonRequestBehavior.AllowGet); } 函数获取数据() { var 参数 = $('#myParamater').val(); $.get('/MyController/YourJsonAction/' + 参数,函数(数据){ //来自YourJsonAction的数据 }); }

    【讨论】:

      猜你喜欢
      • 2015-02-22
      • 1970-01-01
      • 2012-06-12
      • 2016-04-08
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多