C# Core MVC:下拉框onchange事件后填充textarea求助
问题解决:C# Core MVC中AJAX获取数据后更新textarea失败
核心问题
你的JavaScript代码使用了错误的jQuery方法设置textarea值:$('#txtLog').value(data) 不是jQuery的正确语法,同时后端返回的List<string>是JSON数组,需要转换为适合textarea展示的字符串格式。
修复步骤
1. 修正JavaScript的AJAX成功回调
将原代码中的成功回调部分修改为:
success: function (data) { // 将JSON数组转成每行一个元素的字符串,填充到textarea $('#txtLog').val(data.join('\n')); }
- jQuery操作表单元素值需用
.val()方法,.value()是原生DOM元素的属性,不适用于jQuery对象 data是后端返回的JSON数组,join('\n')会把数组元素拼接成换行分隔的字符串,更符合textarea的展示需求
2. 确保控制器方法正确返回JSON
你的GetAreaPathChildren方法需返回JSON格式数据,示例代码如下:
[HttpGet] public IActionResult GetAreaPathChildren(string areapathText) { // 替换为你的实际数据获取逻辑 List<string> areaPathChildren = new List<string>(); // ... 数据获取代码 return Json(areaPathChildren); }
可选优化:后端直接返回拼接好的字符串
如果希望前端逻辑更简洁,可以在控制器中提前把List<string>转换为字符串:
[HttpGet] public IActionResult GetAreaPathChildren(string areapathText) { List<string> areaPathChildren = // 你的数据逻辑 string resultText = string.Join("\n", areaPathChildren); return Content(resultText, "text/plain"); }
此时前端回调只需直接赋值:
success: function (data) { $('#txtLog').val(data); }
内容的提问来源于stack exchange,提问作者SpastkChild
相关产品推荐
相关产品推荐

