从控制器传递一个长字符串以查看长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

下一篇: Query string is too long