代码之家  ›  专栏  ›  技术社区  ›  Andy

ASP.NET MVC会话状态

  •  8
  • Andy  · 技术社区  · 16 年前

    我正在尝试使用jquery在mvc中创建一个带有进度条的上传控件。我一直遇到一个问题,但是mvc不能在并行线程中工作?

    当我上传一个文件并显示通过多次回调从js上传到服务器的过程中的进度时,我试图获取有关当前上传状态的信息,但只有当文件上传后,服务器才会返回应答。

    您知道如何在mvc中不断地或在执行请求时获得会话状态查询吗?

    如果有人知道答案,我相信其他人会很感激你的帮助!!

    1 回复  |  直到 12 年前
        1
  •  4
  •   Odd    16 年前

    如果调用返回视图的操作,则将丢失视图状态。如果愿意,可以使用tempdata在操作之间传递数据,但这可能无法解决问题。在我看来,这里需要的是一个操作,它将返回一个json元素,您可以使用一些异步javascript调用该元素。

    对于你的行动,你应该:

    public ActionResult GetSuggestions(string searchText)
    {
        return Json(new { SearchText = searchText + "completestring"});
    }
    

    然后在您的表单上有一些使用jquery的异步javascript:

    function startAutoComplete() {
        var searchText = $("#inputText").val();
        $.getJSON("/Search/GetSuggestions?searchText=" + searchText, null, autoCompleteResponse);
    }
    
    function autoCompleteResponse(data) {
        if (data.SearchText) {
            $("#inputText").val(data.SearchText);
            $("#inputText").select();
        }
    }
    

    这将允许您从服务器获取一些信息,而无需发布表单并保持客户机的viewstate状态不变。

    There is a full write up of the example here 也许会有帮助。