' +'表格提交中的输入遗失

时间:2015-06-03 10:45:21

标签: asp.net-mvc

我有一个输入:

@using (Html.BeginForm("ReleaseErrors", "ManageReleases", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="hidden" name="name" value="@ViewBag.Name" />
    <button type="submit" onclick="checkInput()">Add</button>
}

我正在获得价值:

 string ReleaseName = Request.Form["name"];

但如果它包含任何&#39; +&#39;他们迷失的人物(简直遗失)。

我的链接也存在这个问题:

<button onclick="location.href='/ManageReleases/Update?name=@r.Name'">Update</button>

html包含+字符,但它们不会被提交。

我怎样才能克服这个?

2 个答案:

答案 0 :(得分:1)

我使用的解决方案是正确格式化字符串:

r.Name.Replace("+", "%2B").Replace(" ", "%20")

这将产生正确的网址。

答案 1 :(得分:0)

假设你的checkInput只是做了它所说的(检查输入),那么没有什么是显而易见的,并且尝试重新创建(隐藏输入,帖子,Request.Form)不能重现你的问题 - 所以它& #39;它可能是你解决方案中的其他地方(例如web.config)

你能创建一个新的,简单的解决方案来尝试和重现它吗?

附加的第二部分:

<button onclick="location.href='/ManageReleases/Update?name=@r.Name'">Update</button>

肯定需要进行网址编码

<button onclick="location.href='/ManageReleases/Update?name=@HttpUtility.UrlEncode(r.Name)'">Update</button>