简体   繁体   English

为什么我在Chrome中发回的邮件无法刷新我的页面

[英]why does my postback in Chrome not refresh my page

I have a postback that should refresh my page and reload page. 我的回发应该刷新我的页面并重新加载页面。 When the page reloads it should display an image or an uploaded link or an uploaded document link or something. 重新加载页面时,页面应显示图像或上传的链接或上传的文档链接或其他内容。 This works great when I run locally, but when I have deployed the same code to my host server, the page reloads with blanks, and the user must hit refresh to see the results. 当我在本地运行时,这很好用,但是当我将相同的代码部署到主机服务器时,页面将重新加载空白,并且用户必须单击刷新才能看到结果。 the following code snippet asks the user to upload an image, and then performs an update: 以下代码段要求用户上传图像,然后执行更新:

markup: 标记:

  <form id="updateLogo" enctype="multipart/form-data">
            <div class="container">
                <div class="row">
                    <div class="col-lg-6 col-md-12">
                        <h5 class="red"><b>(Image sizes are limited to 1 Megabyte)</b></h5>
                        Select File:
                        <input class="form-control" type="file" name="file" id="file" required="required" />
                        <input class="form-control" type="hidden" name="communityId" id="communityId" value="@ViewBag.CommunityId" />
                    </div>
                    <div class="col-lg-6 col-md-12">
                        Current Profile Image:
                        <img src="@ViewBag.LogoImage" class="img-responsive img-circle" style="width:150px; height:150px" />
                    </div>
                </div>
                <div class="row">
                    <div class="col-lg-6 col-md-12">
                        <input type="submit" value="Upload Image" class="btn btn-habitat" id="updtLogo">
                    </div>
                </div>
            </div>
        </form>

javascript with ajax : 带有ajax的javascript:

$("#updtLogo").click(function () { // Host $(“#updtLogo”)。click(function(){//主机

    var hostname = location.hostname;
    var host = '@System.Configuration.ConfigurationManager.AppSettings["hostroot"]';
    if (hostname == "localhost")
        host = "";

    // New Form data including the newly uploaded file
    var formSerialized = $("#updateLogo").serializeArray();
    var formdata = new FormData();

    var logofile = $("#file")[0].files[0];

    // Supporting Assets (i.e. uploaded files go here)
    for (i = 0; i < $("#file")[0].files.length; i++) {
        formdata.append("File", $("#file")[0].files[i]);
    }

    $.each(formSerialized, function (i, field) {
        formdata.append(field.name, field.value);
    });

    var communityId = $("#communityId").val();
    var fileLogo = $("#file").val();

    // Only allow if file size is less than 1MB
    if (logofile.size < (1024 * 1024)) {

        $.ajax({

            type: "POST",
            url: host + "/Communities/UploadLogo/" + communityId + "?logo=" + fileLogo,
            contentType: false,
            processData: false,
            data: formdata,
            success: function () {
                console.log('success!!');
            }

        });
        window.location.reload();
    } else {
        var errorMsg = 3;
        $(".modal-dialog").css({
            "left": 0,
            "top": 200,
        });

        $(".modal-body").css({
            "background-color": "green"
        })

        $(".modal-title").text("Error Uploading Logo Image");

        var url = host + "/Communities/ErrorMessageDialog/" + communityId + "?errorMsg=" + errorMsg;

        $("#inviteDialog").load(url, function () {
            $("#inviteModal").modal("show");
        })
    }
    return false;
});

MVC ActionResult MVC动作结果

[HttpPost]
[Authorize]
public ActionResult UploadLogo(int id, string logo)
{

    // Uploaded data files go here
    HttpPostedFileBase file = Request.Files[0];
    var logoFile = file.FileName != null ? file.FileName : logo;
    if (logoFile != null || logoFile != "")
    {
        var fileName = Path.GetFileName(logoFile);
        var host = ConfigurationManager.AppSettings["hostroot"];
        if (System.Web.HttpContext.Current.Request.IsLocal)
            host = "";

        var communityId = id;
        //    var fileName = file.FileName;
        var directory = Server.MapPath("~/CommunityStorage/" + communityId + "/Logo/");
        var virtualPath = host + "/CommunityStorage/" + communityId + "/Logo/";

        // Create a new directory for the community if it does not exist based on their community id
        if (!Directory.Exists(directory))
        {
            Directory.CreateDirectory(directory);
        }

        var path = Path.Combine(directory, fileName);
        file.SaveAs(path);

        // Save file path to the Communities Table
        var community = db.Communities.Where(x => x.CommunityId == communityId).SingleOrDefault();
        if (community == null)
            return RedirectToAction("Index", "login");

        // Update the Logo in the communities table
        community.LogoPath = virtualPath + fileName;
        db.SaveChanges();

    }

    return View();

}

From the comments: 从评论:

the typical pattern for ajax follows as: Ajax的典型模式如下:

$.ajax({ ... success: function(data) { /* Do stuff here */ } });

If you are looking to reload the page after you receive your data do so in the callback like so: 如果您希望在收到数据后重新加载页面,请在回调中进行如下操作:

$.ajax({
     ... 
    success: function(data) { 
        window.location.reload(); 
     } 
 });

Be careful when reloading the page: JavaScript data doesn't persist after page reload unless you're using cookies / caching. 重新加载页面时要小心:重新加载页面后,JavaScript数据将不会保留,除非您使用cookie /缓存。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 为什么我的页面会在刷新期间在Chrome中触发“就绪”事件? - Why does my page fire “ready” event in Chrome during refresh? 如何刷新每个页面回发的Jquery函数? - How to refresh my Jquery function on each page Postback? 为什么我按下按钮时页面会刷新? - Why does my page refresh when I press buttons? 请问为什么此代码在onclick事件之后刷新我的页面? - Please why does this code refresh my page after the onclick event? 为什么我的 localStorage 变量会在页面刷新时中断? - Why does my localStorage variable break on a page refresh? 为什么刷新页面后我的 Javascript 音频不起作用? - Why does my Javascript audio not work after I refresh a page? 为什么我的数组在重建时填充但在页面刷新时不填充? - Why Does My Array Populate on Rebuild But Not on Page Refresh? 即使在我刷新页面后,谷歌浏览器如何保存我的认证用户? - How does google chrome save my authenticated user even after I refresh the page? 为什么我的 Chrome 扩展程序只在刷新时加载? 但尝试在后台运行 - Why does my Chrome extension only load on refresh? But attempts to run in background 第一次单击时我的页面会更新,但不会刷新 - My Page Updates On First Click But Does Not Refresh
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM