如何使用 ASP.Net MVC 从局部视图执行操作?

How to execute an action from a partial view using ASP.Net MVC?

我在从另一个视图中使用的局部视图执行操作时遇到问题。

我试过这个JQuery用来改变div

的内容
$(document).ready(function () {
        //File Upload Button
        $(".fileUpload").click(function () {
            $.ajax({

                type: 'GET',
                url: '@Url.Action("FileUpload", "Dashboard")',
                data: { type: $(this).attr("data-type") },
                success: function (response) {
                    $(".content").html(response);
                },
                error: function () {
                    alert("Problem on uploading file");
                }

            });

        });
    });

这是控制器下加载局部视图的代码。

public ActionResult FileUpload()
{
  return PartialView("~/Views/Dashboard/FileUpload.cshtml");
}

我已经设法 运行 这段代码并显示局部视图,但我现在很难从局部视图执行操作。

我又添加了一个动作Fileload

[HttpPost]
public ActionResult FileLoad()
        {
             //some codes to execute
        }

这个部分视图将调用它

@model Payout.Models.FundTransfer

@using (Html.BeginForm("FileLoad", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <div>
        <input type="file" name="Filepath" id="Filepath" />
    </div>
        <div>
            <input type="submit" name="submit" value="Submit" />
        </div>
}

现在我不知道执行该操作的最佳方式是什么。你有什么建议吗?

那么这里提示的错误是什么?

顺便说一句,对于 asp.net 核心,您的 post 操作应该是这样的;

public ActionResult FileLoad(IFormFile Filepath)

或像这样的经典 asp.net;

public ActionResult FileLoad(HttpPostedFileBase Filepath)

你可以修改你的代码如下

$.ajax({
          url: '@Url.Action("FileUpload", "Dashboard")',
          type: "POST",
          processData: false,
          data: { type: $(this).attr("data-type") },
          dataType: "html",
          contentType: false,
          success: function (data) {
              $(".content").html(response);
          },
          error: function () {
              alert("Problem on uploading file");
          }
      });