4

在 MVC3 项目中,我使用 Html.BeginForm 发布一些(模型)值。除了那些我想发送一个额外的参数之外,它不是表单(模型)的一部分,而是在 ViewBag 中。现在,当我使用 Button(此处的答案代码:MVC3 razor Error in creation HtmlButtonExtension)时,所有表单值都已发布,但额外参数保持为空。当我使用 ActionLink 时,会发布参数,但不会发布表单值:) 知道如何将两者结合起来吗?谢谢!

@Html.Button("Generate!", new { id = ViewBag.ProjectID })
@Html.ActionLink("Generate!", "Post", new { id = @ViewBag.ProjectID })
4

2 回答 2

2

我的建议是在您的 App.Domain.Model 中声明一个新对象,如下所示

namespace App.Domain.Model
{
    public class CustomEntity
    {
        public Project projectEntity { get; set; }
        public int variableUsed { get; set; }
    }
}


在您看来,您可以使用 CustomEntity.projectEntity 和 CustomEntity.variableUsed 轻松访问它们。

希望能帮助到你

于 2012-05-31T08:25:21.183 回答
0

您可以执行以下操作。

查看代码

@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { @id = "frmId", @name = "frmId" }))
{
        @*You have to define input as a type button not as a sumit. you also need to define hidden variable for the extra value.*@
        <input type="hidden"  name="hndExtraParameter" id="hndExtraParameter" />
        <input value="Submit" type="button" id="btnSubmit" onclick="UpdateHiddenValue()" />
}

<script type="text/javascript">

function ValidateUser() {
$("#hndExtraParameter").val('Assignvaluehere');
$("#frmId").submit();
}

</script>

控制器代码

[HttpPost]
public ActionResult ActionName(Model model, string hndExtraParameter)
{
//Do your operation here.
}
于 2012-05-31T08:49:01.820 回答