我正在使用ASP.NET MVC Web应用程序。我需要从控制器传递一个长字符串到视图。长字符串作为Html编码字符串保存在数据库中,并且必须将Html解码后的字符串发送到在textarea字段中查看:
控制器:
//context.Ticket.Properties.ExpiresUtc =
查看:
public ActionResult Article(int id,string txt)
{
if (txt != "")
{
ArtModel am = new ArtModel();
am.arttext = txt; //txt is the long string
return View(am);
}
return View();
}
我正在使用'_Article'操作从数据库中获取,此操作会使用参数'txt'重定向到'Article'操作。
当我点击按钮时,它从数据库中取出字符串(我没有粘贴代码)并将其保存在字符串'txt'中并发送到视图。
当字符串长度很小时,没有问题,Html解码字符串出现在textarea中。但是如果字符串长度很大,我会收到一些错误,说明网址太长或查询字符串太长:
请求网址太长 HTTP错误414.请求URL太长。
OR
HTTP错误404.15 - 未找到 请求过滤模块配置为拒绝查询字符串太长的请求。
我可以通过解决这些错误来使用相同的方法传递字符串(因为我认为这是一个简单的方法)吗?
我可以以任何方式缩短网址,以便不显示长网址错误吗?
如果有不同的解决方案,请告诉我。
谢谢!
答案 0 :(得分:0)
确保使用POST作为@Html.BeginForm
声明中的方法。
此外,value="update"
根据此问题可能需要value="submit"
:Html.BeginForm Post going to HttpGet action rather than HttpPost in IE, fine in Chrome and Firefox
增加最大网址长度只会延迟下次头痛之前的时间,除非您人为地将文字长度限制为允许的最大值。