0

Microsoft Ajax Template DataView を使用して値をテンプレートにバインドしています。私はこれを行うことができ、あなたが期待するように動作します:

<h3>{{ID}}</h3>
<p>{{Address}}</p>

ただし、ID を持つアクション リンクを作成しようとしています。

<h2><%= Html.ActionLink(Html.AttributeEncode("{{Name}}"), "Index", "Restaurant", new { Id = Html.AttributeEncode("{{ID}}") }, null)%></h2>

必要に応じて名前がリンク テキストとして表示されますが、リンクには ID が含まれず、代わりに %7B%7BID%7D%7D が含まれます

Id を適切に解析してリンクに追加するにはどうすればよいですか?

4

3 に答える 3

0

'<%= Url.Action("Index", "Restaurant")%>'アプリケーション名と競合する URL の問題を回避するために、手動 URL を作成するときに含めることをお勧めします。

于 2009-02-17T21:37:43.003 に答える
0

最終的に機能するようになりました。私が愚かだったのか、それともドキュメントが不足していたのかはわかりませんが、データビューの値をリンクにバインドする方法は次のとおりです。

 <h2><a sys:href="{{'Restaurant/Index/' + ID}}">{{Name}}</a></h2>

実際の URL ルート部分は一重引用符で囲む必要があり、href の代わりに sys:href を使用する必要があります。

于 2009-02-17T15:17:04.993 に答える
0

余分なブラケットがそれを捨てている可能性があります。値を変数に割り当て、ActionLink で変数を使用してみてください。ビューの上部で割り当てを行い、ビュー全体でそれらを再利用することもできます。どこでも再エンコードする必要がないようにします。

  <% var id = Html.AttributeEncode( "{{ID}}" );
     var name = Html.AttributeEncode( "{{Name}}" );
   %>
  <h2><%= Html.ActionLink(name, "Index", "Restaurant", new { Id = id }, null)%></h2>
于 2009-02-17T12:50:54.737 に答える