0

こんにちは。次のフォームを送信するとエラーが発生します。

<div id="tabs">
  <ul>
    <li><a href="@Url.Action("MainDetails", "ProjectDetails")">Project Details</a></li>
    <li><a href="@Url.Action("ProjectAttachments", "ProjectAttachments")">Project Attachments</a></li>
    <li><a href="@Url.Action("Members", "ProjectNetwork", new { IsTab = true })">Project
        Network</a></li>
    <li><a href="@Url.Action("BulletingBoard", "BulletingBoard")">Bulleting Board</a></li>
    <li><a href="@Url.Action("BidsReceived", "Bids")">Bids Received</a></li>
</ul>
</div>
  <div id="LowerButton">
    @Html.Hidden("MainStatus", @Model.Status)
@using (@Html.BeginForm("Dashboard", "Dashboard"))
{     
    <button type="button" id="MakeComment">
        Make a Comment
    </button>  
    <input type="submit" id="GoDashBoard" value="Return to Project List" />
}
</div>

「GoDashBoard」ボタンを押すと、コントローラー「Dashboard」のメソッド「Dashboard」に到達しません。代わりに、次のエラーが表示されます。

エラー

モデルプロパティがサーバーに正常に送信されていることを示しています。ただし、ダッシュボードフォーム内にはモデルプロパティはありません。同時に多くのフォームを送信しない限り。しかし、私はそれが可能だとは思いませんか?私が実際に何も送信していないのに、なぜモデルプロパティを設定しようとしているのか、皆さんは何か考えがありますか?

アップデート:

これは、ダッシュボードアクションの入力です。

   public ActionResult Dashboard(int page = 1)
    {
        var user = (User)Session["User"];
        if (user != null)
        {...
    }}

入力はデフォルトの整数です。しかし、私は呼び出しの痕跡と、使用しているものとは関係のない別のフォームの送信を見ました。 ここに画像の説明を入力してください

そのフォームは、ajaxタブの1つの内部にあります。あるフォームが別のフォームを送信する方法がわかりません。ネストされていません。誰かが良い回避策を知っていますか?なぜなら、両方のアクションで両方のフォームを受け取り、いくつかの検証を行うことを考えているからです。

4

1 に答える 1

0

「ダッシュボード」フォームを削除し、代わりに非表示のリンクを追加して解決しました。ボタンは非表示のリンクを参照します。

@*@using (@Html.BeginForm("Dashboard", "Dashboard"))
     {  *@   
    <button type="button" id="MakeComment">
        Make a Comment
    </button>  
    <button name="button" type="button" onclick="document.location.href=$('#GoDashBoard').attr('href')">Return to Project List</button>
    <a id="GoDashBoard" href="@Url.Action("Dashboard", "Dashboard")" style="display:none;"></a>

    @*<input type="submit" id="GoDashBoard" value="Return to Project List" />*@
@*  }*@
于 2012-05-11T23:19:28.953 に答える