0

我是 MVC 3 的新手,遇到过以下场景:

首先让我解释一下我是如何设置我的应用程序的:

所有到服务器的回发都使用 jquery ajax,它从控制器返回一个视图,该视图附加或前置或替换目标 div。

场景:

我已经到了想上传图片的地步,但不幸的是,由于发布了 jquery ajax,我无法在 C# 中获取 html 的值Request.Files。我知道有插件可以帮助解决这个问题,但我想自己做,所以我创建了一个<iframe>,然后我使用一些 javascript 并将表单发布到 iframe(旧的经典做事方式):

function UploadImg(SACTION) {
        alert(SACTION);
        validatorform.action = SACTION;
        validatorform.target = "fraImage";
        validatorform.method = "POST";
        validatorform.submit();
    }

SACTION参数看起来像这样@Url.Action("UploadFile", "Response")。这一切都很好,因为它击中了控制器操作方法,然后我可以保存图像:

[HttpPost]
        public ActionResult UploadFile(string ArticleID)
        {
            ViewBag.PreviewImage = cFileUploads.UploadFile(ArticleID, Request.Files[0]); 

            return View("ImagePreview");
        }

我现在想将视图返回到 iframe(只是预览图像,然后做一些其他的事情,但这不是重点)

预览图像的视图:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<form action="">
<img alt="" src="@ViewBag.PreviewImage" />
</form>
</body>
</html>

问题:

不幸的是,当我在 C# 中返回视图(ImagePreview.cshtml)时,整个页面都被刷新了,我想要的只是刷新 iFrame。我应该如何从控制器返回视图?

4

1 回答 1

0

解决了这个问题,我有一些 javascript 正在替换 iframe 所在的 div 的内容......(拍在我的额头上)。现在一切正常:)

将这个问题留在这里以防万一..

于 2012-08-24T10:39:53.883 回答