0
私はMVCアプリケーションを作成しています。ユーザーがドロップダウンリストからデータを選択するビューを作成しました。MVC自動検証
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@using ClassDeclarationsThsesis.Classes
@using Microsoft.Ajax.Utilities
@model ClassDeclarationsThsesis.Models.ClassesViewModel
@{ ViewBag.Title = "Classes";
}
<h2>Classes</h2>
@foreach (var user in Model.users)
{
if (user.email.Replace(" ", String.Empty) == HttpContext.Current.User.Identity.Name)
{
if (user.user_type.Replace(" ", String.Empty) == 3.ToString() || user.user_type.Replace(" ", String.Empty) == 2.ToString())
{
using (Html.BeginForm("Classes", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Generate summary views</h4>
<hr />
@Html.ValidationSummary("", new { @class = "text-danger" })
<div class="form-group">
@{
List<SelectListItem> listItems1 = new List<SelectListItem>();
}
@foreach (var subject in Model.subject)
{
listItems1.Add(new SelectListItem
{
Text = subject.name,
Value = subject.name,
});
}
@Html.LabelFor(m => m.subject_name, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.DropDownListFor(m => m.subject_name, listItems1, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" class="btn btn-default" value="Submit" />
</div>
</div>
}
}
if (user.user_type.Replace(" ", String.Empty) == 1.ToString())
{
<p>You do not have enough permissions to enter this page. Contact the administrator.</p>
}
}
}
コントローラは次のとおりです:
public ActionResult Classes()
{
ClassDeclarationsDBEntities1 entities = new ClassDeclarationsDBEntities1();
var model = new ClassesViewModel();
model.subject = entities.Subjects.ToList();
model.users = entities.Users.ToList();
if (ModelState.IsValid)
{
return RedirectToAction("ClassesPickGroup", "Account", new { subject_name=model.subject_name});
}
return View(model);
}
とモデル:
public class ClassesViewModel
{
public List<Subject> subject { set; get; }
public List<User> users { get; set; }
[Required]
[Display(Name = "Subject")]
public string subject_name { get; set; }
}
しかし、ビューは、単一のドロップダウンリストが含まれているので、それは常に有効であるビューは、このようなものですすぐに別のビューにリダイレクトされます。アプリケーションをドロップダウンリストでユーザーの選択を待ってから、回答を送信するにはどうすればよいですか?
のために提出し、確認し、新しいオブジェクトを作成する問題はドロップダウンセレクターでフォームを持っています。ユーザーがsubmitをクリックしてからアクションを実行するまで、フォームは送信されません。 「アプリケーションがユーザーの選択を待つようにする」ことは意味をなさない。フォームを自動的に送信するトリガーがありますか? – Jasen
@ジャセンこのようなトリガはありません。そして問題は、ビューが表示されず、ClassesPickGroupビューにまっすぐに移動することです。 –
@MaciejMiśkiewicz答えをチェックして、あなたのフィードバックを待って、 –