问题描述
我刚刚开始学习 Razor。我已经完成了 8 小时的付费视频教程,现在我正在尝试开发一个真实世界的应用程序,其中包含大量的谷歌搜索和边读。
我阅读了许多类似的帖子并尝试了许多想法,但我只是把头撞在墙上。 此问题源于尝试创建级联下拉列表(选择客户端,在客户端更新联系人下拉列表) 我已经去掉了所有的 EF 代码,然后又回到了手动编码的联系人示例列表。 在此示例中,我什至没有尝试为联系人下拉列表重建选择列表 - 如果警报消息显示结果而不是“未定义”,我会很高兴
@section Scripts
{
<script type="text/javascript">
$(document).ready
(
function ()
{
$('#TblTrials_ClientId').change
(
function ()
{
$.getJSON
(
"?handler=Contacts",function (result)
{
$.each(result,function (i,item)
{
alert(item.contactname);
});
}
);
}
);
}
);
</script>
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
这里是对应的cs页面模型中的“OnGetContacts”处理程序
public JsonResult OnGetContacts()
{
List<clientcontact> clientcontacts = new List<clientcontact>{
new clientcontact{ClientContactId = 1,ContactName = "Scott"},new clientcontact{ClientContactId = 2,ContactName = "Bill"}
};
JsonResult jsn = new JsonResult(clientcontacts);
return jsn;
}
我在“return jsn”之前设置了断点,jsn 是两个条目的集合,因此肯定会调用处理程序。 我担心 jsn 看起来更像 clientcontacts 类而不是 JSON 字符串,但这可能是因为我在这个阶段的无知。
这是我对 clientcontacts 类的定义
namespace TrialManagementSystem.Models
{
public partial class clientcontact
{
public int ClientContactId { get; set; }
public string ContactName { get; set; }
}
}
我尝试了很多想法,例如 item.ContactName 而不是 item.contactname 和 result[i].ContactName 和许多其他排列
如果您有任何建议,我将非常非常感谢。
非常感谢 托尼
解决方法
您只需要更改代码:
alert(item.contactname);
到
alert(item.contactName);