1. ホーム
  2. c#

ASP.NET MVCのtextboxの入力値の取得

2023-07-28 01:27:45

質問

私はテキストボックス入力といくつかのラジオボタンを持っています。例えば、私のテキストボックスの入力のHTMLは次のようになります。

<input type="text" name="IP" id="IP" />

ユーザーがWebページ上のボタンをクリックしたら、データをコントローラに渡したい。

<input type="button" name="Add" value="@Resource.ButtonTitleAdd"  onclick="location.href='@Url.Action("Add", "Configure", new { ipValue =@[ValueOfTextBox], TypeId = 1 })'"/>

些細なことかもしれませんが、私の問題は、テキストボックスの値を取得し、それをコントローラに渡す方法がわからないことです。どのようにしてテキストボックスの値を読み、それを ipValue=@[ValueOfTextBox] ?

どのように解決するのですか?

シンプルなASP.NET MVCの購読フォームに、メールテキストボックスを実装すると、このようになります。

モデル

フォームからのデータは、このモデルにマッピングされます。

public class SubscribeModel
{
    [Required]
    public string Email { get; set; }
}

表示

ビューの名前はコントローラのメソッド名と一致させる必要があります。

@model App.Models.SubscribeModel

@using (Html.BeginForm("Subscribe", "Home", FormMethod.Post))
{
    @Html.TextBoxFor(model => model.Email)
    @Html.ValidationMessageFor(model => model.Email)
    <button type="submit">Subscribe</button>
}

コントローラ

コントローラは、リクエストの処理と適切なレスポンスビューを返す役割を担っています。

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Subscribe(SubscribeModel model)
    {
        if (ModelState.IsValid)
        {
            //TODO: SubscribeUser(model.Email);
        }

        return View("Index", model);
    }
}

これが私のプロジェクトの構造です。ビューフォルダがHomeControllerの名前と一致していることに注意してください。