【问题标题】:Window.location.href post parameters to actionresult asp.net mvcWindow.location.href 将参数发布到 actionresult asp.net mvc
【发布时间】:2014-04-09 16:29:25
【问题描述】:

我尝试在 asp.net mvc 中将文本框值发布到 actionresult

Javascript:

function OnButtonClick() {
    var data= {
        TextBox: TextBox.GetValue()
    };
    var PostData= data.TextBox;

    window.location.href = "Home/MyActionResult?Page=data" + PostData;
}

操作结果

public ActionResult MyActionResult(string PostData)
{
    return view();
}

每当我将数据发布到 Home/MyACtionResult 时,PostData 始终是 null

我错过了什么?

如何将文本框值发布到 actionresult?

【问题讨论】:

  • location.href 是一个 GET,使用 Ajax
  • 如果我使用 ajax,我无法更改 url,我想使用 window.location
  • 当然可以。做一些研究。例如 Jquery 历史。您需要使用 Ajax 或带有方法 post 的表单或更改服务器以接受 GET
  • @user3389856 你是在做 POST 还是 GET?

标签: javascript asp.net-mvc windows location href


【解决方案1】:

试试这个:

window.location.href = "Home/MyActionResult?Page=data&PostData=" + PostData;

【讨论】:

  • 您不能使用 GET 发布,但至少您修复了参数名称
  • @mplungjan action方法没有标注HttpPostAttribute,所以我假设它不是post。
  • 统计问题中“post”出现的次数?
  • 我将那些 post 解释为动词,意思是 send
【解决方案2】:

试试这个

var url = '@Url.Action("../Home/MyActionResult")' + '?Page='+data+'&'+PostData;
window.location.href = url;

【讨论】:

    【解决方案3】:

    这种类型的传递数据是一种不好的方法。请尝试研究另一种代码方法。这不适用于大量数据、url、安全数据。

    【讨论】:

    • 为什么是负面的。这有什么问题。您认为用户传递数据的方式是否正确?我建议传递数据的方法是不对的。想想 1. 安全性 2. 大量数据传递 3. 网络 url 长度 我的意图是首先更改代码的这种方法,而不是在错误的代码方法上添加解决方案。
    • 你基本上是对的(传递数据的坏方法->我也这么认为),但知道(说)我是一个坏方法并没有帮助。您可以在这里发布一个示例,如何在不使用“?”的情况下传递参数在网址中?
    【解决方案4】:

    使用 window.location.href 你不能使用 POST 方法。 但是,如果您不想使用 GET 方法,这里有一个简单的技巧。

    You can use cookies and then 
    function OnButtonClick() {
        setCookie("param1",value1,30);
        setCookie("param2",value2,30); // and so on, fetch input names and values using javascript 
        window.location.href = "Home/MyActionResult"
    }
    然后您可以从 MyActionResult 页面获取 cookie 值并使用它。

    当然,您还必须在页面中包含 setCookie 函数。

    【讨论】:

    • 同样在您的 MyActionResultpage 中,您可以销毁帮助您将数据发布到新页面的给定 cookie,而无需“?”、查询字符串或 GET 方法。
    猜你喜欢
    • 2014-03-01
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    相关资源
    最近更新 更多