0

私はまだ 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" })
}
4

1 に答える 1

0

理解した!

私のメソッド名は Create() ですが、@Ajax.ActionLink() でメソッドを正しく表現していませんでした。2 番目の文字列の "TestImageExtension" は "Create" である必要があります。ボタンが部分ビューをレンダリングするようになりました。

于 2013-10-22T17:38:03.127 に答える