在mvc工作
在这个Json结果中,我正在加载一些下拉列表,它工作得很好..如果我选择一些值描述值应该显示在文本框中....这里ViewData [“Description”] = AttributesLibrary.Description;在这我得到描述值,但我无法显示它......
public JsonResult PopulateGradeScaleSetUp(string trackId)
{
List<GradeDivisionValues> GradeDivisionValuesList = new List<GradeDivisionValues>();
SelectList fieldIds = new SelectList(new List<Gradescale> { });
AttributesLibrary AttributesLibrary = new AttributesLibrary();
try
{
if (!string.IsNullOrEmpty(trackId))
{
string gradescaleID;
Context.SetPrivilegeContext(GrowthDataConstant.ViewAttributeLibrary);
AttributesLibrary = GrowthMasterDataProxy.GetAttributeByAttributeId(trackId);
gradescaleID = AttributesLibrary.AttributePropertyDetails.GradeScaleDetails.Identifier;
Context.SetPrivilegeContext(GrowthDataConstant.ViewGradeScale);
Gradescale gradeScale = new Gradescale();
gradeScale = GrowthMasterDataProxy.GetGradeScaleById(gradescaleID);
Dictionary<string, GradeDivisionValues> GradeDivisionValuesDic = gradeScale.GradeDivisionValues;
if (GradeDivisionValuesDic != null && GradeDivisionValuesDic.Count > 0)
{
GradeDivisionValuesList = GradeDivisionValuesDic.Values.ToList();
}
fieldIds = new SelectList((IEnumerable)GradeDivisionValuesList, "NumericalValue", "TextValue");
ViewData["Description"] = AttributesLibrary.Description;
}
return Json(fieldIds, JsonRequestBehavior.AllowGet);
}
catch (ArgumentException argumentException)
{
ExceptionService.HandleException(argumentException, _defaultPolicy);
return Json("Error", JsonRequestBehavior.AllowGet);
}
}
这是我的观点:
<%= Html.TextBox("Description", (string)ViewData["Description"])%>
答案 0 :(得分:0)
您的控制器操作返回JSON,这让我相信您正在使用AJAX调用它。要更新文本框的值,您需要将其包含在JSON结果中,而不是使用ViewData
。例如:
return Json(new
{
fieldIds = fieldIds,
description = AttributesLibrary.Description
}, JsonRequestBehavior.AllowGet);
现在剩下的就是在AJAX成功处理程序中使用此值。假设您正在使用jquery,它可能如下所示:
var url = '<%= Url.Action("PopulateGradeScaleSetUp") %>';
$.getJSON(url, { trackId: 123 }, function(result) {
$('#Description').val(result.description);
});
和文本框定义简单:
<%= Html.TextBox("Description") %>