1

jqGrid がセルの書式設定されたテキスト (この場合はリンク) を返すために使用する JavaScript 関数から作成したカスタム Html ヘルパー メソッドを呼び出そうとしています。

function formatGroupPlanEditLink(cellValue, options, rowObject) {
        //var cellHtml = "<a href='/Insurance/GroupPlanEdit/?id=" + rowObject[0] + "'>" + rowObject[1] + "</a>";
    var functionArgs = rowObject[1] + ',Url.Action("GroupPlan", "Insurance", new { id = ' + rowObject[0] + ' }),String.Format("Edit {0}", ' + rowObject[1] + '), listId,Url.Action("GroupPlanList", "Insurance"),false';
    var cellHtml = '@Html.DialogFormLink(' + functionArgs + ')';
    return cellHtml;
}

私が抱えている問題は、ヘルパーが実行される前に文字列全体を連結できないことです。そのため、ブラウザは「@Html.DialogFormLink(」を実行しようとしています。これはもちろんエラーを引き起こします。これについては、もっと良い方法があるはずです。Html ヘルパー メソッドを引き続き使用できるようにしたいのですが、他の場所で使用すると、私の要件にうまく機能します。

4

1 に答える 1

0

私は Razor にはあまり詳しくありませんが、@Html ヘルパーを囲む引用符は疑わしいように見えます。

var cellHtml = '@Html.DialogFormLink(' + functionArgs + ')';

ブラウザーは @Html.DialogFormLink を実行しません。サーバーがそれを評価します。サーバーがリテラル「@Html.DialogFormLink」をjsに挿入していると思われます。

于 2012-06-09T00:20:12.997 に答える