从控制器传递一个长字符串以查看长URL
我正在使用一个ASP.NET MVC Web应用程序。我需要将一个长字符串从控制器传递到视图。长字符串作为Html编码字符串保存在数据库中,Html解码字符串必须发送到视图中textarea字段:
控制器:
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();
}
视图:
@using (Html.BeginForm("_Article", "Home", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
<input name="button" value="Update" class="btn btn-info" type="submit" class="submit" />
@Html.TextAreaFor(model => model.arttext)
<script>
CKEDITOR.replace( 'arttext' );
</script>
}
我正在使用'_Article'操作从数据库中提取,并且此操作将重定向到'文章'操作,参数'txt'。
当我点击按钮时,它从数据库中提取字符串(我没有粘贴代码)并将其保存在字符串'txt'中并发送到视图。
当字符串长度很小时,没有问题,Html解码的字符串出现在textarea中。 但是,如果字符串长度很大,我会收到一些错误,指出URL太长或查询字符串太长:
请求URL过长的HTTP错误414.请求URL太长。
要么
HTTP错误404.15 - 未找到请求过滤模块配置为拒绝查询字符串过长的请求。
通过解决这些错误,我可以使用相同的方法传递字符串吗(我认为这是一种简单的方法)?
我可以以任何方式缩短网址,以便长时间的网址错误不会显示出来吗?
请让我知道是否有不同的解决方案。
谢谢!
确保在@Html.BeginForm
语句中使用POST作为方法。
此外, value="update"
可能需要根据这个问题的value="submit"
:Html.BeginForm后在HttpGet行动而不是HttpPost在IE浏览器,罚款在Chrome和Firefox
除非您将文本长度限制为允许的最大值,否则增加最大URL长度只会延迟下次头疼之前的时间。
链接地址: http://www.djcxy.com/p/7263.html上一篇: Passing a long string from controller to view results in a long url