11
<input type="button" value="Delete" onclick="deleteMember(@Model.ID, '@ViewBag.returnUrl')"/>

そのコードには、4つのエラー、2つの構文エラー、および2つの未終了の文字列定数があります。

これらのエラーを修正するにはどうすればよいですか?

ここに画像の説明を入力してください

4

4 に答える 4

29

あなたは電話でそれを破ることができますHtml.Raw

<input type="button"
       value="Delete"
       onclick="@(Html.Raw(String.Format("deleteMember({0}, '{1}')",
           Model.ID,
           Html.Encode(ViewBag.returnUrl)
       )))"
/>

または、最初に割り当ててからstring、属性でその変数を参照します。

@{
  String onclick = String.Format("deleteMember({0}, '{1}')",
      Model.ID, Html.Encode(ViewBag.returnUrl));
}
<input type="button" value="delete" onclick="@onclick" />

3番目のオプションは、関心の分離です。マークアップとスクリプトを分離してください。ニールは私を殴りましたが、次のようなものです。

<input type="button" value="delete"
    data-task="delete" data-id="@Model.ID" data-returnurl="@ViewBag.returnUrl" />

<!-- .... -->

<script>
  var buttons = document.getElementsByTagName('INPUT');
  for (var b = 0; b < buttons.length; b++){
    if (buttons[b].type != 'button') continue;
    switch (buttons[b].getAttribute('data-task') || ''){
      case 'delete':
        // read data-id & data-returnurl. Do something with them, and
        // move on.
        break;

      // other actions
      case 'add':
      case 'update':
      default:
        break;
    }
  }
</script>

奇妙なことですが、最初の括弧はかみそりをいじります(属性で宣言されている場合でも)。私自身はこの振る舞いを期待していません。

于 2013-03-25T14:22:17.120 に答える
1

それは何よりもVSのバグです。

それでも、期待どおりにレンダリングされると思います。

私はブラッドのソリューションが好きです。

もう1つの推奨オプションは、値をデータダッシュ属性にポップし、jQueryなどを使用してデータダッシュ値を関数に渡すことです。

于 2013-03-25T14:27:11.477 に答える
0

もう1つの方法は、JavaScript変数に値を割り当て、メソッドの呼び出しでそれらを使用することです。

<script>
  var memberId = '@Model.ID';
  var returnUrl = '@ViewBag.returnUrl';
</script>

<input type="button" value="Delete" onclick="deleteMember(memberId, returnUrl)"/>
于 2013-10-03T16:47:30.080 に答える
0

この方法を使用して、関数でパラメーターを渡すこともできます

@Html.DropDownListFor(M => M.SubscriptionType,
   new SelectList(Model.DefaultPlanName, "value", "displayText"),
   new { @onclick = "Testnew('"+Model.CreationTime+"' )",
    @class = "form-control selectpicker" })
于 2017-04-11T09:36:49.427 に答える