2

選択したボタンのIDを取得しようとしています。

これは以下の私のコードです

 <% foreach (var item in Model.getLeagues) { %>
        <a href=Teams.aspx class="leagueImage">
            <img src="../../<%: item.image %>" alt="<%: item.name %>" />
            </a>
    <% } %>

このコードでは、5 つのボタンを生成しています。次に、クリックされたボタンの ID が必要です。

このIDを取得する方法はありますか?

ありがとう

4

3 に答える 3

3

コントローラーから ID を取得したい場合は、Marko の提案を参考にしてください。id 属性に入れるのではなく、href タグの一部にして ID 属性を渡します。

デフォルトでは、MVC のルーティングは、ルートの一部である ID を期待しています:

http://sitename/{Controller}/{Action}/{Id}

したがって、次のようなことができます (Razor 構文を使用しますが、調整できます)。

@for(var i = 0; i < Model.getLeagues.Count; i++) {
  Html.ActionLink("Button Name", "Index", "MyController", new { id = Model.getLeages[i] }, new { @class="classname", alt = "@Model.getLeagues[i].name" }) %>
}

そして、コントローラー (必要に応じて名前を変更) では、次のようになります。

public class MyController : Controller {
  public ActionResult Index(int id) {
    // Do stuff with the ID that you get back here.
  }
}

また、私があなたの画像情報を解読したことにも気付くでしょう。代わりに、スタイルシートで次のようなクラスを作成します。

a.classname
{
    background: url(../Images/image.gif) no-repeat top left;
    /* Do whatever else you need to do here to style your buttons. */
}

私はコードをチェックしていないので、構文的に完璧であるとは保証できませんが、正しい道をたどることができるはずです。

Teams.aspx へのパスに気付きました。WebForms から来ている場合は、ルーティング ファイルを編集して、次のように RESTful ルートに向けることができます。

routes.MapPageRoute("Teams", "MyController/Index", "~/WebForms/Index/Teams.aspx");

(クレジット: https://stackoverflow.com/a/10175580/132528 )

于 2013-06-06T21:28:43.510 に答える
0

ループしているコレクションのインデックスを取得したい場合は、これを試してください:

Model.getLeagues.indexOf(item)
于 2013-06-06T21:02:08.817 に答える