4

MVC3 プロジェクトでは、Html.BeginForm を使用していくつかの (モデル) 値を投稿します。それらに加えて、フォーム (モデル) の一部ではなく、ViewBag 内にある追加のパラメーターを送信したいと考えています。ここで、ボタンを使用すると (ここでの回答のコード: MVC3 razor Error in creating HtmlButtonExtension )、すべてのフォーム値が投稿されますが、余分なパラメーターは null のままです。ActionLinkを使用すると、パラメーターは投稿されますが、フォームの値は投稿されません:) 2つを組み合わせる方法を知っていますか? ありがとう!

@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 に答える