簡體   English   中英

如何將 model 屬性從 Razor 查看到 JavaScript ZC1C425268E68385D1AB5074C17A

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

我認為有以下幾點

@{
    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>
    }
}

和一個單獨的文件中的 JavaScript function (正如我用 console.log 測試過的那樣,它被正確加載:

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

但是,當用戶單擊按鈕調用此 function 時,我收到Uncaught SyntaxError: Invalid or unexpected token error. 這里有什么問題?

更改您的按鈕 html

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

但更好的方法是刪除 onClick="favouriteBook(this.id)" 並使用 Unobtrusive JavaScript。 這是編寫 JavaScript 語言的方式,其中我們適當地分離了文檔內容和腳本內容,從而使我們能夠清楚地區分它們。 這種方法在很多方面都很有用,因為它使代碼不易出錯,易於更新和調試。


@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM