簡體   English   中英

從控制器傳遞長字符串以查看結果將導致長網址

[英]Passing a long string from controller to view results in a long 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”重定向到“ Article”操作。

當我單擊按鈕時,它將從數據庫中獲取字符串(我沒有粘貼代碼)並將其保存在字符串“ txt”中,然后發送到視圖。

字符串長度較小時沒有問題,Html解碼的字符串出現在文本區域中。 但是,如果字符串長度很大,則會出現一些錯誤,指出url太長或查詢字符串太長:

請求URL太長HTTP錯誤414。請求URL太長。

要么

HTTP錯誤404.15-找不到請求過濾模塊配置為在查詢字符串過長的情況下拒絕請求。

是否可以通過解決這些錯誤,使用相同的方法(我認為這是一種簡單的方法)來傳遞字符串?

我可以以任何方式縮短網址,以免出現長網址錯誤嗎?

請告訴我是否有其他解決方案。

謝謝!

確保使用POST作為@Html.BeginForm語句中的方法。

另外,根據以下問題, value="update"可能需要為value="submit"Html.BeginForm Post轉到HttpGet操作而不是IE中的HttpPost,在Chrome和Firefox中效果很好

除非您人為地將文本長度限制為允許的最大長度,否則增加最大URL長度只會延遲下一次頭痛的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM