如何在视图中包含查询字符串参数,以便友好地使用url

本文关键字:url 参数 视图 包含 字符串 查询 | 更新日期: 2023-09-27 18:04:45

我有一个简单的单页MVC应用程序,它有一个表单,一旦表单提交,它将过滤掉显示的数据。

我希望用户能够复制和粘贴/书签的url,以包括这些表单值被预选。

编辑:包括示例

当我希望用户看到http://localhost/?param1=4&otherItem=testing&test=true

时,他们只能在浏览器中看到http://localhost/

这显然不工作,但我不确定我将如何完成。

public ActionResult Index(int param1 = 0, string otherItem = "", bool test = false)
{
    return RedirectToAction("Index", "Home", new { param1, otherItem, test});
}

如何在视图中包含查询字符串参数,以便友好地使用url

您需要使用JavaScript来生成URL,因为这些值可以在客户机上更改,并且您不希望为这些值调用服务器。这种技术的缺点是它没有绑定到您的路由结构中。如果你改变了路由或查询字符串参数,你需要修改JavaScript来匹配。我不知道你的路由是什么样子的,但是你提到了使用查询字符串所以我将基于那个

<script type="text/javascript">
function generateUrl(){
    var param1 = document.getElementById("param1").value;
    var otherItem = document.getElementById("otherItem ").value;
    var test = document.getElementById("test ").value;
    return "@Url.Action("controller","action")?param1=" + param1 + "&otherItem=" + otherItem + "&test=" + test;
    //may need to URI encode the parameters
}
</script>

然后当表单值改变时,用JavaScript捕获它,调用generateUrl()以获取要使用的URL,然后可能将该值分配给文本框(可能是剪贴板库的副本)或超链接。