0

我正在使用 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) {

但我没有成功。

4

1 回答 1

0

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

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

它必须如何工作:

  • 创建视图
  • 向服务器发送请求(另一种方法,即返回Json
  • 使用权data
    公共 ActionResult YourJsonAction(int 参数)
    {
        IList datafromDB = MyService.GetData(parameter);
        返回 Json(datafromDB, JsonRequestBehavior.AllowGet);
    }

    函数获取数据()
    {  
       var 参数 = $('#myParamater').val();   
       $.get('/MyController/YourJsonAction/' + 参数,函数(数据){
          //来自YourJsonAction的数据
       });
    }

于 2012-10-14T12:02:58.207 回答