如何从Javascript向新页面传递参数?
我有以下代码:如何从Javascript向新页面传递参数?,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我有以下代码: $('#CreateButton').click(function (event) { var datastoreValue = $("#SelectedDatastore").val(); window.location = "/Q/Create?datastore=" + datastoreValue; }); 它工作得很好,但我希望对我的用户隐藏datastore=XYZ。是否有其他方法可以传递这些信息,以便我能够在MVC控制器中读取这些信息。目前我是这样读的:
$('#CreateButton').click(function (event) {
var datastoreValue = $("#SelectedDatastore").val();
window.location = "/Q/Create?datastore=" + datastoreValue;
});
它工作得很好,但我希望对我的用户隐藏datastore=XYZ。是否有其他方法可以传递这些信息,以便我能够在MVC控制器中读取这些信息。目前我是这样读的:
public ActionResult Create(string datastore)
{
在这个方法中,数据存储的值对我来说是可用的 您可以将数据存储值放在cookie中以对用户隐藏,但cookie最好用于您希望持续一段时间的设置,而不是仅用于一页的设置 或者,您可以使用帖子,将创建信息隐藏在一个隐藏的表单中,然后提交 或者,您可以使用Ajax调用发出create命令,然后自己更改页面
否则,您正在使用的查询参数是为新页面指定页面级参数的标准方法。如果您停留在同一个网站上,您可以将数据发送给控制器;它将从post集合中提取数据,并且您的url不会显示查询字符串参数 只需使用id为SelectedDataStore的控件将表单包装在标记中,操作设置为url,方法设置为post 下面是一个带有提交按钮的快速示例:
<FORM action="/Q/Create" method="post">
<INPUT id="SelectedDataStore" />
<INPUT type="submit" value="Send">
</FORM>
用一个表单标记将您的代码包围起来,该标记的方法设置为POST。还可以在创建操作上方添加HttpPost属性。这将在客户端看不到查询字符串值的情况下将数据发布到操作。如果您正在发布到另一个操作,并在表单内的操作属性中指定该操作。比如说,
<% using (Html.BeginForm("Create", "MyController", null, FormMethod.Post)) { %>
<%: Html.Label("Data store value: ")%>
<%: Html.TextBox("datastore") %>
<input type="submit" value="Submit" />
<% } %>
您的创建操作将拾取此项并执行其余操作
希望这有帮助
赫斯克