好的,所以我正在使用Razor foreach迭代模型,我想将模型发送到jQuery。我可以发送单个参数as seen in this answer,但不能发送完整对象。
示例:
<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
(公司对象,而不是字符串)将发送字符串值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; }
}
答案 0 :(得分:1)
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>