Html.BeginFormにバインドされた同じコントローラ内で、2つの入力またはボタンコントロールで2つの異なるアクションがトリガされますか?ASP.NET MVC Html.BeginFormで2つの入力を使用
次の例では、Subscribe入力がコントローラのSubscribeアクションを呼び出すようにします。これはうまくいく。私は購読解除入力が私の購読解除を呼び出すようにしたい。これをどうやって起こさせるのですか? TIA。
<% using (Html.BeginForm("Subscribe", "NewsLetter"))
{%>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.EmailAdress) %>
<%= Html.ValidationMessageFor(
model => model.EmailAdress) %>
</div>
<div >
<input type="submit" class="submit" value="Subscribe" />
<input type="submit" class="submit" value="Unsubscribe" />
</div>
<% } %>
更新:
私NewsLetterController 2つのアクションが登録と登録解除は下記掲載されています:この質問へ
はちょうどより多くのコンテキストが
public class NewsLetterController : Controller
{
[HttpPost]
public ActionResult Subscribe(NewsletterSubscriber subscriber)
{
// do something
}
[HttpPost]
public ActionResult Unsubscribe(NewsletterSubscriber subscriber)
{
// do something
}
私はことを期待していました同じフォーム要素から各アクションを呼び出すことができますが、これは明らかに偽です。可能であれば、私はどのようにMVCパターンを維持しますが、スクリプトを避けますか?ポストされたHTMLは、メインページに表示される部分的なビューの一部です。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl
<AkwiMemorial.Models.NewsletterSubscriber>" %>
<h2><strong>Newsletter</strong></h2>
<legend>Enter your email</legend>
<% using (Html.BeginForm("Subscribe", "NewsLetter"))
{%>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.EmailAdress) %>
<%= Html.ValidationMessageFor(model => model.EmailAdress) %>
</div>
<div >
<input type="submit" class="submit" name="sub"
value="Subscribe" />
<input type="submit" class="submit" name="unsub"
value="Unsubscribe" />
</div>
<% } %>
ちょうどあなたの質問を編集してください。 –