[英]How to pass String collection from controller to view in Spring MVC
[英]How to pass string from a View to a controller in mvc
此 JavaScript 代碼用於將字符串從視圖傳遞到控制器中的操作:
<script type="text/javascript">
$(document).on('click', 'a', function () {
$.ajax({
type: 'POST',
url: '/brandsOfACategory',
contentType: 'application/json; charset:utf-8',
data: JSON.stringify(this.id)
})
});
</script>
控制器中的brandOfACategory 代碼:
public ActionResult brandsOfACategory(string id)
{
return View();
}
代碼未按預期工作,因為 id 為空。
有人可以指導嗎?
$.ajax({
type: 'POST',
url: '/brandsOfACategory',
contentType: 'application/json; charset:utf-8',
data: { 'id': id }
})
使用您當前的代碼,在進行 ajax 調用時,請求負載只有一個字符串值。 例如,如果您單擊的鏈接具有Id
屬性值“link1”,它將發送以下字符串作為您的 ajax 調用的請求負載。(如果您打開開發工具->網絡選項卡,您可以看到這一點)
"link1"
為了使模型綁定起作用,有效負載應具有鍵值格式,以便將值映射到與鍵具有相同值的參數。
由於它是一個簡單的值,因此您不必將 JSON 字符串化版本和contentType
作為application/json
。 只需將 JS 對象作為data
發送。 確保您發送的 JavaScript 對象的鍵/屬性名稱與您的操作方法參數名稱( id
)相同,並且它會起作用。
假設您的錨標記具有有效的Id
屬性值,以便this.id
表達式返回有效的字符串值。
<a href="/SomeUrl" id="myId">MyLink</a>
在腳本中,您可能還想停止正常的點擊行為,以防止頁面導航到 href 屬性值。
$(document).on('click', 'a', function (e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: '/brandsOfACategory',
data: { id :this.id }
}).done(function (res) {
console.log('result from ajax call',res);
})
});
這將發送像id=myId
這樣的值作為請求的表單數據。 由於您沒有明確指定 contentType,它將使用默認的application/x-www-form-urlencoded
如果用戶點擊的鏈接沒有Id
屬性,代碼將不會發送任何值,因為this.id
將返回一個空字符串並且您在服務器端的參數值為 null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.