私はjQueryUIは、HTMLページをタブ付き、タブのいずれかのコンテンツ領域に持って次のように、私が入れていますユーザー(このビューは基本的なユーザー作成ページです)をクリックしてボタンをクリックすると、何も起こりません。ユーザーは作成されず、エラーも表示されません。タブ付きの "this" htmlは、モデルの関連付けを持たない別のコントローラにあります。ユーザーの作成がAdminController内にある、適切な方法は、以下に示す:他のコントローラのビューと動作を「この」コントローラのビューに組み込む方法は?私が作成したとき</p>が <pre><code><div id="tabs-1ua"> @RenderPage("~/Views/Admin/Create.cshtml") </div> </code></pre> <p>Create.cshtmlページが正しくしかし、私のタブ内に表示されない:
public ActionResult Create()
{
return View();
}
[HttpPost]
public async Task<ActionResult> Create(CreateModel model)
{
if (ModelState.IsValid)
{
AppUser user = new AppUser { UserName = model.Name, Email = model.Email};
IdentityResult result = await UserManager.CreateAsync(user,
model.Password);
if (result.Succeeded)
{
return RedirectToAction("Index");
}
else
{
AddErrorsFromResult(result);
}
}
return View(model);
}
は、私は、POSTメソッドの最初にブレークポイントを置くが、私は私の他のページ内からページを作成するアクセスしたときには、ヒットしませんでした。
このページに直接アクセスしてユーザーを作成すると、新しい作成と検証で期待される動作が得られます。
public class CreateModel
{
[Required]
public string Name { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Password { get; set; }
}
、次のようにCreate.cshtmlビューは次のとおりです:モデルは以下の通りである。
@model IdentityDevelopment.Models.CreateModel
@{ ViewBag.Title = "Create User";}
<h2>Create User</h2>
@Html.ValidationSummary(false)
@using (Html.BeginForm())
{
<div class="form-group">
<label>Name</label>
@Html.TextBoxFor(x => x.Name, new { @class = "form-control" })
</div>
<div class="form-group">
<label>Email</label>
@Html.TextBoxFor(x => x.Email, new { @class = "form-control" })
</div>
<div class="form-group">
<label>Password</label>
@Html.PasswordFor(x => x.Password, new { @class = "form-control" })
</div>
<button type="submit" class="btn btn-primary">Create</button>
@Html.ActionLink("Cancel", "Index", null, new { @class = "btn btn-default" })
}
私の質問があり、私がやろうとしています何をすることが可能ですか?もしそうなら、既存の利用可能なコードを再利用するためにはどのような変更が必要ですか?
ありがとうございます。
ありがとう、これは働いた。コントローラーのCreateメソッドで 'return View(model);'を変更して、ユーザー作成が成功したときに同じページに留まるようにするにはどうすればいいですか? – ITWorker
[ajaxフォーム提出]を行うことができます(http://stackoverflow.com/questions/10803292/how-to-send-data-in-jquery-post-to-mvc-controller-which-use-viewmodel-as -paramet)を使用して、ページが同じになるようにします。伝統的な提出が必要な場合は、一部の識別子をパーシャルビューに渡し、それを隠しフォーム要素に入れます。作成アクション・メソッドでこの値をチェックし、それに戻ります。 – Shyju