我有一个输入:
@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包含+字符,但它们不会被提交。
我怎样才能克服这个?
答案 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>