0

現在、以下のフォームにリンクがあります。

<a href="javascript:changeNumbers('Numbers', '@Url.Action("ChangeNumbers")')">Change</a>

このリンクを追加するサイトの外観に合わせるために、次のようにボタン入力に変更したいと考えています。

<input type="button" value="Change" onclick="changeNumbers('Numbers', '@Url.Action("ChangeNumbers")')" />

ただし、この 2 番目の形式で問題が発生しています。一重引用符@Url.Action("ChangeNumbers")で囲まれていると、Unterminated string constant. 誰かが私が間違っていることとそれを修正する方法を教えてもらえますか?

編集

ページを試してみようとは思いませんでした.2番目のフォームが機能しているようです. だから今私の質問は - Visual Studio がこれを間違っているとフラグを立てているのはなぜですか?

4

2 に答える 2

1

それ自体は「間違った」ことをしているのではなく、Razor が完璧ではないだけであり、引用符内の引用符のようなものはそれを異常にする傾向があります。

簡単な修正方法の 1 つは、URL を変数に格納し、その変数を使用することです。

@{ var url = Url.Action("ChangeNumbers"); }
<input type="button" value="Change" onclick="changeNumbers('Numbers', '@url')" />

ただし、onclick属性をまったく使用しないことをお勧めします。これを所属する場所に置きます:JSで。

<script>
    $('#myButton').on('click', function () {
        changeNumbers('Numbers', '@Url.Action("ChangeNumbers")');
    });
</script>

デフォルトでMVCに含まれているため、上記のjQueryを使用

于 2013-02-26T19:01:32.163 に答える