0

你好,

我正在使用 ASP.NET MVC 3,我需要生成这样的 URL:MyURL.se/?CS.C2=113

我试过这个:

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

但这会抛出一个:CS0746: Invalid anonymous type member declarator。必须使用成员分配、简单名称或成员访问来声明匿名类型成员。

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

我可以做这样的事情..

一个。创建一个自定义的 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)
         );
}

湾。像这样使用它

@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 回答