フォームコレクションに問題があります。
いくつかのフォームが表示されており、2つの送信ボタンの両方に一意のname=""が付いています。デバッグ時に、送信されたボタンの「名前」を除くすべてのデータをフォームコレクションのコントローラーに取得します...理由はわかりません。そのため、コードを確認しましたが、formcolが機能していない場合とformcolが機能している場合にformcollectionを使用することに違いは見つかりませんでした。ボタンの名前を変更し、移動し、参照を追加してみましたが、それが役立つと思いました...何もありません。送信するたびに条件をスキップします。これは、「false」のみが返され、onclickの「upload」または「save」ボタンにフォームコレクションが含まれていないためです。
それで、私はあなたにこれについて助けを求めたいと思います。エラーが発生する可能性がある場所を教えてください。ありがとうございます!
これはコントローラーにあります:
[HttpPost]
public ActionResult EditUser(EditUserVM model, int id, FormCollection c)
{
//c["upload"] is everytime set to null, 'cos c does't contain it
if (c["upload"] != null)
{
//.... some code
return RedirectToAction("Index", "Home");
}
if (ModelState.IsValid)
{
//.... next code
}
return View("EditUser", model);
}
これは表示されています:
@model PrukazOnline.ViewModels.EditUserVM
@{
ViewBag.Title = "EditUser";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>
@using (Html.BeginForm("EditUser", "User", null, FormMethod.Post, new { @class = "form-horizontal", id = "formstep", enctype = "multipart/form-data" }))
{
@*Here is some code - @Html.TextBoxFor(x => x.something) and @Html.ValidationMessageFor(x => x.something) - all of these are in formcollection*@
.
.
.
.
<div>
<input type="submit" value="Nahrát" class="upl" name="upload" id="upload" />
</div>
<div class="submit_buttons">
<input type="submit" name="save" id="save" value="Uložit" />
</div>
}