質問

私は、テンプレートに値をバインドするには、Microsoft Ajaxのテンプレートの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が適切に解析されたリンクに追加するになるだろう?

役に立ちましたか?

解決 2

は、最後にそれが動作するようになった私は愚かである、またはそれはドキュメントの不足ですが、ここではリンクにデータビュー値をバインドする方法であればされた場合、私は知りません。

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

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

他のヒント

これは、余分な括弧はそれを投げている可能性があります。変数に値を代入し、ActionLinkの中の変数を使用してみてください。あなたは、ビューの上部に割り当てを行い、その後、同様のビューを通じてそれらを再利用することができます。どこにでもそれらを再エンコードすることから保つために。

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

その良い練習アプリケーション名と競合したURLの問題を回避するには、手動URLを構築するとき'<%= Url.Action("Index", "Restaurant")%>'を含めるます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top