0

やあ、

ASP.NET MVC 3を使用しており、次のようなURLを生成する必要があります。MyURL.se/?CS.C2=113

私はこれを試しました:

<%= Html.ActionLink(subItem.Name, "List", "Ad", new { CS.C2=subItem.Id}, null) %>

ただし、これにより:CS0746:無効な匿名タイプのメンバー宣言子がスローされます。匿名型のメンバーは、メンバーの割り当て、単純な名前、またはメンバーアクセスを使用して宣言する必要があります。

CS.C2は、アクションに必要なviewClassの一部です。

では、このリンクの適切なURLを生成するにはどうすればよいですか?

編集 :

public ActionResult List(AdList data)
{
    //Fill data
    return View(data);
}

私はこれを試しました:https ://stackoverflow.com/a/10011614/1490727しかしそれはスローします:

このオブジェクトにはパラメーターなしのコンストラクターは定義されていません。説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。例外の詳細:System.MissingMethodException:このオブジェクトにパラメーターなしのコンストラクターが定義されていません。

4

2 に答える 2

1

私はこのようなことをすることができました。

a。カスタムhtmlヘルパーを作成する

public static MvcHtmlString MyActionLink(this HtmlHelper htmlHelper, string linkText,
string action, string controller, IDictionary<string, object> routeValues, 
object htmlAttributes)
{
         return htmlHelper.ActionLink
         (
            linkText, 
            action, 
            controller, 
            new RouteValueDictionary(routeValues), 
            HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes)
         );
}

b。このように使用してください

@Html.MyActionLink(subItem.Name, "List", "Ad", 
new Dictionary<string, object> { { "CS.C2", subItem.Id } }, null)

アップデート

カスタムアクションヘルパーは必要ありません。以下のように直接渡すことができRouteValueDictionaryます、

@Html.ActionLink(subItem.Name, "List", "Ad", 
new RouteValueDictionary{ { "CS.C2", subItem.Id } }, null)
于 2012-07-08T17:33:57.597 に答える
1

私はこのように手動でそれを構築することになりました:

<a href="?CS.C2=<%=item.Id%>" title="<%=item.Name%>"><%=item.Name%></a>

Action.Linkでこのリンクを生成することが可能であれば、それについて聞いてうれしいです。

于 2012-07-08T13:16:57.487 に答える