简体   繁体   English

如何将 model 属性从 Razor 查看到 JavaScript ZC1C425268E68385D1AB5074C17A

[英]How to pass model property from Razor View to JavaScript function

I have the following in my view我认为有以下几点

@{
    foreach (var book in @Books)
    {
        <tbody>
            <tr>
                <th scope="row">@book.Title</th>
                <th scope="row">@book.Author</th>
                <th scope="row">
                    <button onclick="favouriteBook(@book.Id)">Favourite</button>
                </th>
            </tr>
        </tbody>
    }
}

And a JavaScript function in a separate file (Which is being correctly loaded as I have tested with a console.log:和一个单独的文件中的 JavaScript function (正如我用 console.log 测试过的那样,它被正确加载:

function favouriteBook(id) {
    localStorage.setItem("bookId", id); 
    // Later to be a DB, just testing for now. 
}

However when this function is called by the user clicking on the button, I get an Uncaught SyntaxError: Invalid or unexpected token error.但是,当用户单击按钮调用此 function 时,我收到Uncaught SyntaxError: Invalid or unexpected token error. What is wrong here?这里有什么问题?

Change your button html更改您的按钮 html

<button id="@book.Id" class="favoriteBookBtn" onClick="favouriteBook(this.id)">Favourite</button>

But much better way is to remove onClick="favouriteBook(this.id)" and use Unobtrusive JavaScript.但更好的方法是删除 onClick="favouriteBook(this.id)" 并使用 Unobtrusive JavaScript。 It is the way of writing JavaScript language in which we properly separate Document Content and Script Content thus allowing us to make a clear distinction between them.这是编写 JavaScript 语言的方式,其中我们适当地分离了文档内容和脚本内容,从而使我们能够清楚地区分它们。 This approach is useful in so many ways as it makes the code less error prone, easy to update and to debug.这种方法在很多方面都很有用,因为它使代码不易出错,易于更新和调试。


@section Scripts {
<script>

$(document).ready(function () {
    $(".favoriteBookBtn").click(function (e) {
e.preventDefault();
         var id=this.id;       
...your code
     });
});

</script>
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在razor视图中,如何将模型属性传递给JavaScript函数并显示返回值? - In razor view, how to pass model property to JavaScript function and display return value? 如何将剃刀视图模态属性值传递给javascript函数 - How to pass a razor view modal property value to a javascript function 如何从视图中的javascript函数更改模型属性? - How to change a model property from a javascript function inside a view? 如何将参数传递给 javascript function 将 div 从页面 model 填充到其 ZE405C1DF83BD279AED06? - How to pass a parameter to a javascript function that populates a div from a page model to its Razor Page? 如何将模型字段传递给视图中的Javascript函数? - How to pass a model field to a Javascript function in a view? Razor 视图模型绑定使用 javascript 函数 - Razor view model binding use javascript function 如何从razor视图将参数传递给引用的javascript文件 - How to pass parameters to referenced javascript file from razor view 从javascript函数调用mvc razor视图 - call mvc razor view from javascript function 如何在JavaScript函数中传递两个视图模型参数 - How to pass two view model parameter in javascript function 混合Razor和Javascript:在视图中为Model分配一个数字给Javascript变量 - Mixing Razor and Javascript: Assigning a number from Model to a Javascript variable in a view
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM