将多个值从MVC3 View传递给Action方法

时间:2011-11-24 14:34:22

标签: asp.net-mvc-3

我想知道是否有人可以帮助我。我为听起来像厚厚的声音而道歉,但我是MVC3的新手,我正试图将2个值从视图传递到动作方法,但它只是不公平!

HTML:

@Html.ActionLink("ASSIGN", "AssignTokenToDataTemplate", "HostHtmlTokenManager", 
new { htmlTokenId = item.Id }, new { htmlDataTemplateId = 1 })

行动方法:

public ActionResult AssignTokenToDataTemplate(int htmlTokenId, int htmlDataTemplateId)
{
    // Do some database stuff here
    return View("AssignAnExistingTokenToHtmlDataTemplate", new {templateId = htmlDataTemplateId});
}

我想将两个整数传递给AssignTokenToDataTemplate操作方法,但我无法使其工作?!

有人能看到我哪里出错吗? :(

4 个答案:

答案 0 :(得分:4)

尝试

@Html.ActionLink("ASSIGN", "AssignTokenToDataTemplate", "HostHtmlTokenManager", 
new { htmlTokenId = item.Id , htmlDataTemplateId = 1 })

但是,您可能需要考虑使用模型(您自己的类型)将它们作为一个一起传递。

答案 1 :(得分:3)

您可以使用routeValues参数传递这两个值:

@Html.ActionLink(
    "ASSIGN",                             // linkText
    "AssignTokenToDataTemplate",          // actionName
    "HostHtmlTokenManager",               // controllerName
    new {                                 // routeValues
        htmlTokenId = item.Id, 
        htmlDataTemplateId = 1 
    }, 
    null                                  // htmlAttributes
)

答案 2 :(得分:2)

您必须在匿名类中包含这两个参数:

@Html.ActionLink("ASSIGN", "AssignTokenToDataTemplate", "HostHtmlTokenManager", 
            null, new { htmlDataTemplateId = 1, htmlTokenId = item.Id })

答案 3 :(得分:0)

尝试;

@Html.ActionLink("ASSIGN", "AssignTokenToDataTemplate", "HostHtmlTokenManager", 
new { htmlTokenId = item.Id, htmlDataTemplateId = 1 })

马特