[英]Passing multiple results back in URL from view to controller with MVC from wrapped selectViewList
[英]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.