【问题标题】:Display different view in popup or html div based on clicking url action根据单击 url 操作在弹出窗口或 html div 中显示不同的视图
【发布时间】:2014-09-13 23:59:48
【问题描述】:


如何根据对控制器中不同操作的调用,在弹出窗口或原始视图中的不同 div 位置显示视图

我尝试使用 ajax 调用,但没有成功。我不知道为什么。我使用了一个 jquery 模型对话框,但它将用户重定向到另一个空白背景页面并显示弹出窗口。

重要的是不要更改原始页面。

感谢您的帮助。

function ButtonClick(x) {
    $.ajax({
        type: "POST",
        cache: false,
        url: "Tasks/AddWorkersToTask",
        data: { id: x },
        dataType: "html",
        async: true,
        success: function (data) {
            $("#Content").html(data);
              alert('success');
        }
    });
    return false;
}


<a class="Tab" href="#" onclick="ButtonClick('@Model.PK_TaskID');"> AJAX Call </a>

<div id="Content">  </div>

编辑 控制台中的错误是:传递给 getElementById() 的空字符串。

这个功能很好用。我尝试测试它以防操作链接并成功添加数据。

    public ActionResult AddWorkersToTask(int id=0)
    {
        TempData["TaskID"] = id;
        return PartialView();

    }
    [HttpPost]
    public ActionResult AddWorkersToTask(FormCollection form, string textbox1,string TaskID)
    {

【问题讨论】:

  • 发布您的AddWorkersToTask() 方法。您在控制台中有什么错误? (可能应该是url: "/Tasks/AddWorkersToTask",
  • 我更新了我的问题。
  • 应该是 GET 而不是 POST。你的控制器方法被命中了吗?
  • 不,不是。我认为问题出在js函数上。
  • 再次。您的控制器方法方法是否被击中?控制台有错误吗?

标签: javascript jquery ajax asp.net-mvc asp.net-mvc-4


【解决方案1】:

首先,查看控制器中的签名。 AJAX 请求需要与此匹配。

type: "POST",
data: { id: x }

public ActionResult AddWorkersToTask(int id=0)

[HttpPost]
public ActionResult AddWorkersToTask(FormCollection form, string textbox1,string TaskID)

如果您的目标是HttpPost,则您的签名有误。或者它需要是一个GET 请求。您的 AJAX 应该向您抛出一个错误,您需要使用 .error() 回调来捕获该错误。

【讨论】:

  • 我改变了类型。但仍然没有显示数据。
猜你喜欢
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
  • 2021-04-26
  • 1970-01-01
  • 2013-01-06
  • 2015-06-27
  • 1970-01-01
相关资源
最近更新 更多