Javascript 陷入错误:未定义模型

Javascript 陷入错误:未定义模型,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我在ASP MVC中有以下代码。我正在尝试获取模型作为参数,以便在js中获得播放音乐的正确文件夹 @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.Name) </td> <td> @Html.DisplayFor(modelItem =&

我在ASP MVC中有以下代码。我正在尝试获取模型作为参数,以便在js中获得播放音乐的正确文件夹

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Genre)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ReleaseDate)
        </td>
        <td>
            var model = @Html.Raw(Json.Encode(item.Mp3file));
            <button onclick="getLocation(model)">Click me</button> 
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
            @Html.ActionLink("Details", "Details", new { id=item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.Id })
        </td>
    </tr>
}

我做错了什么

您必须使用“@”引用服务器端代码:

var model=@Html.Raw(Json.Encode(item.Mp3file));
点击我

您是否在查看页面顶部声明了@model?我可以用哪种方式调用它?如果它是一个简单的类型,这肯定会起作用,但它是一个复杂的模型。出于好奇(我现在无法测试),这种语法会自动将模型序列化为JSON吗?因为如果没有,这将是不够的,必须使用合适的序列化方法来代替;这在我的回答中,在OP.So中,@model是一个JSON格式的对象。将其包装在“”中将允许将其发送到JS函数。我完全错过了,在行动中。对不起。在漫长的一天之后,我在晚上登录,这真是太好了。
function getLocation(model) {
var tekst = model;
console.log(tekst);}
var model = @Html.Raw(Json.Encode(item.Mp3file));
<button onclick="getLocation('@model')">Click me</button>