私は、ユーザーが自分の電子メールのニュースフィードにサインアップすることを可能にする部分的なビューを備えたサイドバーを持つブログを持っています。私がしようとしているのは、いくつかのデータを投稿した後に来たページにユーザーを戻すことと、フォームの部分ビューに検証または返信メッセージを表示することです。データを部分表示に戻す
問題は、私の部分的なビューが新しいウィンドウ(レイアウトなし)で開くことです。私はこれを修正してサイドバーの返品データとともに自分のブログに戻すことができますか?
これが私の見解です:
@using Blog.Models.Entities
@model Subscriber
<header>
<h2>Subscribe</h2>
</header>
<p>Subscribe to my e-mail newsfeed.</p>
@using (Html.BeginForm("Form", "Subscription"))
{
<div class="editor-label">@Html.LabelFor(subscriber => subscriber.Email)</div>
<div class="editor-field ">@Html.EditorFor(subscriber => subscriber.Email)</div>
@Html.ValidationMessageFor(subscriber => subscriber.Email)
<input type="submit" value="Subscribe" />
<p>@ViewBag.Result</p>
}
とデータを処理しているコントローラの関連部分:
public ActionResult Form()
{
return PartialView("_Form");
}
[HttpPost]
public ActionResult Form(Subscriber subscriber)
{
if (ModelState.IsValid)
{
Subscriber foundSubscriber = _repository.Subscribers.Where(s => s.Email.Equals(subscriber.Email)).FirstOrDefault();
if (foundSubscriber != null)
{
ModelState.AddModelError("Email", "This e-mail address has already been added.");
return PartialView("_Form", subscriber);
}
_repository.SaveSubscriber(subscriber);
ViewBag.Result = "Succesfully subscribed to the newsletter.";
return PartialView("_Form");
}
ModelState.AddModelError("Email", "Please provide a valid e-mail address.");
return PartialView("_Form", subscriber);
}
このウィンドウはどこに新しいウィンドウがありますか? Theresあなたの部分にリンクするコードは表示されません。 –
私は少し間違いを見ましたが、 "return PartialView"を使用すると、部分ビューはアプリケーションではなくレイアウトなしでレンダリングされます。 –