[解決済み] Razorで "Html.BeginForm "を記述する方法
2022-06-17 07:44:15
質問
このように書くと
form action="Images" method="post" enctype="multipart/form-data"
が動作します。
しかし、Razorでは'@'と一緒にするとうまくいきません。何か間違いがあったのでしょうか?
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<fieldset>
Select a file <input type="file" name="file" />
<input type="submit" value="Upload" />
</fieldset>
}
私のコントローラはこのような感じです。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload()
{
foreach (string file in Request.Files)
{
var uploadedFile = Request.Files[file];
uploadedFile.SaveAs(Server.MapPath("~/content/pics") +
Path.GetFileName(uploadedFile.FileName));
}
return RedirectToAction ("Upload");
}
どのように解決するのですか?
以下のコードは正常に動作します。
@using (Html.BeginForm("Upload", "Upload", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<fieldset>
Select a file <input type="file" name="file" />
<input type="submit" value="Upload" />
</fieldset>
}
で、期待通りに生成されます。
<form action="/Upload/Upload" enctype="multipart/form-data" method="post">
<fieldset>
Select a file <input type="file" name="file" />
<input type="submit" value="Upload" />
</fieldset>
</form>
一方、このコードを他のサーバーサイドの構成要素、例えば
if
または
foreach
を削除する必要があります。
@
の前に
using
. 例えば
@if (SomeCondition)
{
using (Html.BeginForm("Upload", "Upload", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<fieldset>
Select a file <input type="file" name="file" />
<input type="submit" value="Upload" />
</fieldset>
}
}
サーバー側のコードとしては、以下のようになります。 進め方 :
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/content/pics"), fileName);
file.SaveAs(path);
}
return RedirectToAction("Upload");
}
関連
-
[解決済み] JSFでフォームアクションを定義する方法は?
-
[解決済み] Webフォームのフィールド/入力タグでブラウザのオートコンプリートを無効にするにはどうすればよいですか?
-
[解決済み] チェックボックスとそのラベルをクロスブラウザーで一貫して揃える方法
-
[解決済み] Razor View Page で名前空間をインポートするにはどうしたらいいですか?
-
[解決済み] razor viewエンジンでの@文字のエスケープ
-
[解決済み] razor で三項演算子を使用するには (特に HTML 属性について)?
-
[解決済み] Razor でローカル変数を宣言するには?
-
[解決済み】ASP.NET RazorのHTML.ActionLinkとUrl.Actionの比較
-
[解決済み】curlを使用してmultipart/form-dataをPOSTする正しい方法は何ですか?
-
[解決済み] Angular 2:'ngModel'が'input'の既知のプロパティではないため、バインドできない。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Angular 2: formGroup は FormGroup のインスタンスを期待します。1つを渡してください。
-
[解決済み] JSFでフォームアクションを定義する方法は?
-
[解決済み] 無料または手頃な価格のOCRおよびICR(手書き文字認識)SDK?[クローズド]
-
[解決済み】HTMLフォームのaction属性に空のURLを使用するのは良い方法ですか?(action="")
-
[解決済み] AngularJSでフォームの入力を条件付きで要求するにはどうすればよいですか?
-
[解決済み】curlを使用してmultipart/form-dataをPOSTする正しい方法は何ですか?
-
[解決済み] AngularJSでフォームが無効なときに送信ボタンを無効にする
-
[解決済み] 送信」ボタンを無効にするには?
-
[解決済み] カピバラを使って、フォームのフィールドが正しくプリフィルドされているかどうかを確認するにはどうすればよいですか?
-
[解決済み] Razorで "Html.BeginForm "を記述する方法