将Razor模型从Foreach传递到jQuery
本文关键字:jQuery Foreach Razor 模型 | 更新日期: 2023-09-27 18:29:26
好吧,我正在用Razor-foreach迭代模型,我想把模型发送到jQuery。我可以发送这个答案中的单个参数,但不能发送完整的对象。
示例:
<table>
@foreach (var contact in Model)
{
<tr>
<td>
<a href="#" onclick="myFunction('@contact.Name')">@contact.Name</a>
</td>
<td>
<a href="#" onclick="myFunction('@contact.Company')">@contact.Company.Name</a>
</td>
</tr>
}
</table>
和
<script type="text/javascript">
function myFunction(contact) {
console.log(contact);
};
</script>
这里,发送@contact.Name
将按预期向函数发送Name
中的值,但@contact.Company
(它是Company对象,而不是字符串)将发送字符串值ProjectName.Models.Company
。有可能做我想做的事吗?
下面是我正在使用的一个实际模型的示例(注意,我使用的每个模型,比如这个模型,也有另一个对象类型作为字段)。
public class Note
{
public long NoteId { get; set; }
public string Content { get; set; }
public DateTime CreatedOn { get; set; }
public User CreatedBy { get; set; }
}
Javascript对您的模型没有概念,但您可以对其进行编码并将其解析为Javascript对象,以便在脚本中访问其属性
<a href="#" onclick="myFunction(JSON.parse('@Html.Raw(Json.Encode(contact.Company))'))">@contact.Company.Name</a>
<script type="text/javascript">
function myFunction(company) {
console.log(company.Name);
};
</script>