从控制器传递长字符串以查看长网址

时间:2016-12-09 17:57:17

标签: c# asp.net-mvc

我正在使用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 - 未找到   请求过滤模块配置为拒绝查询字符串太长的请求。

我可以通过解决这些错误来使用相同的方法传递字符串(因为我认为这是一个简单的方法)吗?

我可以以任何方式缩短网址,以便不显示长网址错误吗?

如果有不同的解决方案,请告诉我。

谢谢!

1 个答案:

答案 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

增加最大网址长度只会延迟下次头痛之前的时间,除非您人为地将文字长度限制为允许的最大值。