JQuery,调用Action并返回View
我的 JQuery 中有一个对话框,其中有两个按钮。单击“仍然上传”按钮时,我调用控制器的操作。 $(函数(){ $("#dialog:ui-dialog").dialog("销毁");
$("#dialog-confirm").dialog({
resizable: false,
height: 300,
width: 500,
modal: true,
buttons: {
"Upload Anyway": function () {
$(this).dialog("close");
var month = '@ViewBag.duplicateString' ;
var path = $("#path").val();
$.getJSON('@Url.Action("UpdateComp")', { dateToUpdate: month, filePath: path },
function() {});
},
Cancel: function () {
$(this).dialog("close");
}
}
});
在控制器中我只想处理数据并返回视图。
public ActionResult UpdateComp (string dateToUpdate, string filePath)
{
//Process Data
return View(compList.Values.AsEnumerable<CompUser>());
}
当我单击“仍然上传”时,我已正确重定向到操作(我已使用调试进行检查),但视图未加载。我不太擅长 JQuery 所以也许我做错了什么。
感谢您的帮助!
I'have a dialog box in JQuery that have two buttons. When the button "Upload Anyway" is clicked I call an Action of my Controller.
$(function () {
$("#dialog:ui-dialog").dialog("destroy");
$("#dialog-confirm").dialog({
resizable: false,
height: 300,
width: 500,
modal: true,
buttons: {
"Upload Anyway": function () {
$(this).dialog("close");
var month = '@ViewBag.duplicateString' ;
var path = $("#path").val();
$.getJSON('@Url.Action("UpdateComp")', { dateToUpdate: month, filePath: path },
function() {});
},
Cancel: function () {
$(this).dialog("close");
}
}
});
In the Controller I just want to process the data and return a view.
public ActionResult UpdateComp (string dateToUpdate, string filePath)
{
//Process Data
return View(compList.Values.AsEnumerable<CompUser>());
}
When I click over the "Upload Anyway" I'm correctly redirected to the Action (I've checked with debug), but the view is not loaded. I'm not very good at JQuery so maybe I'm doing something wrong.
Thanks for your help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您对 $.getJSON 的回调没有执行任何操作。请参阅 http://api.jquery.com/jQuery.getJSON/ 并查看“成功”参数。
但是,如果您返回一个视图(HTML 等),那么您就不是“获取 JSON”,而是获取 HTML。尝试使用 $.get 或 $.post (取决于要求),并在成功回调中向用户显示返回的视图。
Your callback on $.getJSON is doing nothing. See http://api.jquery.com/jQuery.getJSON/ and look at the "success" parameter.
But, if you're returning a View (HTML, etc), then you're not "getting JSON", you're getting HTML. Try using $.get or $.post (depending on requirement) instead and displaying the returned view to the user in your success callback.
将 $.getJSON 更改为 $.get 并在我的主 div 中显示结果视图解决了问题。
请注意,我渲染了部分视图以便正确显示 div。
这是JQuery代码,希望对其他人有所帮助。
Changing the $.getJSON by $.get and display the resulted view in my main div solve the problem.
Note that I render a partial view in order to display the div correctly.
Here is the JQuery code, hope that will help some other person.
试试这个
Try this