[解決済み] ASP.Net MVC ビューからコントローラへのデータの渡し方 [終了しました]。
2023-05-31 07:08:39
質問
私はASP.Netに全く新しいです、そして、私はこれが非常に基本的な質問であると確信しています。 私はレポートを生成するためのリンクがあるビューを持っていますが、レポートを生成できるようにするために、私はユーザーに適切なテキスト名を提供するように要求する必要があります。
これまでのところ、私はコントローラからビューに渡されたモデルを使用して、サーバーからビューにデータを渡すことができましたが、私はビューから私のコントローラにデータを渡す方法がわかりません。
今回は、文字列をビューからコントローラに渡すだけです。
例を挙げてアドバイスいただけると幸いです。
アップデイト
サーバにデータを戻す必要があるのはわかりますが、razorhtmlのコードやコントローラの形でどのように実現するのでしょうか?
どのように解決するのですか?
コントローラからビューにデータを渡すように、ViewModelsを使用して行うことができます。
このようなビューモデルがあるとします。
public class ReportViewModel
{
public string Name { set;get;}
}
で、GET Actionに
public ActionResult Report()
{
return View(new ReportViewModel());
}
で、ビューは強く型付けされたものでなければ
ReportViewModel
@model ReportViewModel
@using(Html.BeginForm())
{
Report NAme : @Html.TextBoxFor(s=>s.Name)
<input type="submit" value="Generate report" />
}
で、あなたの HttpPost アクションメソッドで、コントローラの
[HttpPost]
public ActionResult Report(ReportViewModel model)
{
//check for model.Name property value now
//to do : Return something
}
または 単純に、POCOクラス(Viewmodels)なしでも可能です
@using(Html.BeginForm())
{
<input type="text" name="reportName" />
<input type="submit" />
}
で、HttpPostアクションで、テキストボックス名と同じ名前のパラメータを使用します。
[HttpPost]
public ActionResult Report(string reportName)
{
//check for reportName parameter value now
//to do : Return something
}
EDIT : コメント通り
別のコントローラに投稿したい場合は このオーバーロード をオーバーロードしてください。
@using(Html.BeginForm("Report","SomeOtherControllerName"))
{
<input type="text" name="reportName" />
<input type="submit" />
}
アクションメソッドからビューへのデータの受け渡し ?
同じビューモデルを使用することができ、単にGETアクションメソッドでプロパティ値を設定するだけです。
public ActionResult Report()
{
var vm = new ReportViewModel();
vm.Name="SuperManReport";
return View(vm);
}
そして、あなたのビューでは
@model ReportViewModel
<h2>@Model.Name</h2>
<p>Can have input field with value set in action method</p>
@using(Html.BeginForm())
{
@Html.TextBoxFor(s=>s.Name)
<input type="submit" />
}
関連
-
.NET開発サーバー アプリケーション管理ツール
-
[解決済み] ファイルアップロード ASP.NET MVC 3.0
-
[解決済み] ASP.NET MVC Frameworkで複数のサブミットボタンを処理する方法は?
-
[解決済み] ASP.NET MVCでenumからドロップダウンリストを作成するにはどうすればよいですか?
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] ASP.NET MVCでビューをコンパイルする
-
[解決済み] ASP.NET MVCのビューを文字列としてレンダリングする方法は?
-
[解決済み] ASP.NET MVCコントローラは、Imageを返すことができますか?
-
[解決済み】ASP.NET MVCでクライアントのIPアドレスを取得するにはどうすればいいですか?
-
[解決済み】ASP.NET MVCでファイルを表示/ダウンロードに戻す場合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NET6新機能 - 暗黙の名前空間参照
-
.NET複数データベース一括データ挿入、更新(SqlServer、MySql、PgSql、Oracleをサポートします。)
-
ASP.NET Core ディペンデンシーインジェクションの詳細
-
ASP.NET学習でよくあるエラーのまとめ
-
名前 'xxx' が現在のコンテキストに存在しない エラー解決方法の1つ
-
[解決済み] System.Data.Entity.Internal.AppConfig' の型イニシャライザーで例外が発生しました。
-
[解決済み] ASP.NET WebサイトとASP.NET Webアプリケーションのどちらを選ぶか?
-
[解決済み] Server.UrlEncode vs. HttpUtility.UrlEncode
-
[解決済み] ASP.NET MVCのAjaxポストでantiforgerytokenを含める。
-
[解決済み] ASP.NETの一時ファイルのクリーンアップ