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

时间:2019-05-16 06:05:57

标签: c# jquery asp.net-mvc dashboard

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

我已经尝试过使用该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>
}

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

2 个答案:

答案 0 :(得分:1)

您可以按以下方式修改代码

$.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");
          }
      });

答案 1 :(得分:0)

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

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

public ActionResult FileLoad(IFormFile Filepath)

或者对于经典的asp.net来说就是这样;

public ActionResult FileLoad(HttpPostedFileBase Filepath)