2

mvc4 RC をインストールしたので、アプリケーション ルートに置き換わる razor 自動解決 URL がhtml 5属性~で機能しません。data-*すなわち:

ASP.NET MVC4 ベータ版:

<table id="userTable" class="dataTable" data-table-source="~/api/user/Users">
    <tr>
        <td data-field="OperatorCode">
           @user.Code
        </td>
        <td>
            <a href="~/user/edit">edit</a>
        </td>
</table>

に変身しました

<table id="userTable" class="dataTable" data-table-source="/api/user/Users">
    <tr>
        <td data-field="OperatorCode">
           operatorCode 1
        </td>
        <td>
            <a href="/user/edit">edit</a>
        </td>
</table>

しかし、RC では次のように変換されます。

<table id="userTable" class="dataTable" data-table-source="~/api/user/Users">
    <tr>
        <td data-field="OperatorCode">
           operatorCode 1
        </td>
        <td>
            <a href="/user/edit">edit</a>
        </td>
</table>

このバージョンでわかるように、~残っています。設計によるものですか?data-*はいの場合、html5属性の解決を再度有効にするために変更する構成パラメーターはありますか? リリースノートに説明が見つかりませんでした。

ありがとうございました。

4

1 に答える 1

1

これはMVC4ファイナルでも発生します。これは、特定のデータパラメータに対して「〜」を解決したくない場合を回避するための設計によるものであることは理にかなっています。

簡単な修正は、それらを@ Url.Contentで再度ラップすることです。それほど良くはありませんが、機能します。

<html data-root="@Url.Content("~/")">

PS。MVC4のソースコードを確認しました。「data-」属性の解決を有効にするオプションはありません。「data-」属性は、単にリテラルとして扱われます。

于 2012-09-07T03:40:01.477 に答える