0

テキストボックスの値を @html.hidden() に渡して、私のビューであるコントローラー MVC に移動する方法:

@using (Html.BeginForm("Reject", "Maker", FormMethod.Get))
{
 <div class="filed">
 <form class="RejectForm">
  <p> <input type="text" class="RejectTextBox" name="HidField" id="HidField" value="" placeholder="سبب الرفض"> 
  @Html.ValidationMessage("_strRejectReason", new { @style = "color:red" })</p>
  <br />

  <input id="RejectButton" type="submit" value="Reject"/>                                           
  </form>
  </div>

 @Html.HiddenFor(model => model._strRejectReason, new { id = "HidField"})
 @Html.Hidden("id", item.Id);
 <p>@Html.ValidationMessage("CustomError", new { @style = "color:red" })</p>
 }

問題は、コントローラーがモデルの空のオブジェクトを受信することです。これは、モデルに2つのプロパティ int id 、string _strRejectReason が含まれており、 @Html.Hidden(); を使用してそれらを送信することです。しかし、パラメーターとしてのコントローラーのモデルオブジェクトは空であり、コントローラーは次のとおりです。

public ActionResult Reject(MakerTransactions MakerTransactions)
    {
        MakerCheckerUnitOfWorkBase _MakerCheckerUnitOfWorkBase = new MakerCheckerUnitOfWorkBase();
        MakerTransactions.RouteAgentsConfigsMaker = _MakerCheckerUnitOfWorkBase.RouteAgentsConfigsChecker.RejectMaker(MakerTransactions.id,MakerTransactions._strRejectReason);

        return View(MakerTransactions);
    }
4

1 に答える 1

0
@using (Html.BeginForm("Reject", "Maker", FormMethod.Get))
{
 @Html.HiddenFor(model => model._strRejectReason)
 @Html.Hidden("id", item.Id);
 <p>@Html.ValidationMessage("CustomError", new { @style = "color:red" })</p>
 }

MVC はタグからの名前を使用します。次に、別の名前のタグ ID を追加すると、サーバーはこのプロパティを認識しません。

@Html.HiddenFor(model => model._strRejectReasonm, new {id = "sample" })

public ActionResult Reject(FormCollection collection)
    {
        var _strRejectReason = collection["_strRejectReason"];
        var id = collection["id"];
        return View();
    }
于 2013-11-10T12:00:09.947 に答える