私はまだ Asp .Net MVC と C# に不慣れです。特定のことを行う方法を学んでいますが、ビューをロードするボタンを取得する際に問題が発生しています。通常は .NET MVC で行うようなイベント リスナーは必要ないことがわかったので、ボタンに @Ajax.ActionLink を使用しました。ただし、ボタンをクリックしてもビューが読み込まれません。理由がわからない?ボタンにビューをロードさせることができません。
これが私がやったことです。私の共有フォルダーには、ボタンを含むレイアウト ページがあります。このボタンを挿入しました:
<li>@Ajax.ActionLink("Res-TestImageExtension","TestImageExtension","TestImageExtension","",App.ViewOptions.appAjaxOptions,App.ViewOptions.blueButtonHtmlAttributes)</li>
コントローラーフォルダーに、次のコントローラーを挿入しました。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace HexaPod.Controllers
{
public class TestImageExtensionController : Controller
{
// For multiple file select
[HttpPost]
public ActionResult Create(List<HttpPostedFileBase> image)
{
if (image != null)
{
foreach (var item in image)
{
string filePath = Path.Combine(Server.MapPath("~/App_Data"), Path.GetFileName(item.FileName));
item.SaveAs(filePath);
}
}
return PartialView("TestImageExtension");
}
}
}
モデル:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace HexaPod.Models
{
public partial class ImageUpload {
public int ID { get; set;}
public string ImagePath {get; set;}
}
}
意見:
@model HexaPod.Models.ImageUpload
@{
ViewBag.Title = "Image Upload";
}
@*
*@
@using (Html.BeginForm("Create", "Profile", FormMethod.Post, new { enctype =
"multipart/form-data", id = "frm_profile" }))
{
@Html.LabelFor(model => model.ImagePath)
@Html.TextBoxFor(model => model.ImagePath, new { type = "file", accept = "image/jpeg, image/jpg"}) @Html.ValidationMessageFor(model => model.ImagePath)
// for multiple file select
@Html.TextBoxFor(model => model.ImagePath, new { type = "file", accept = "image/jpeg, image/jpg", multiple = "multiple" })
}