如何将两个[HttpPost]与相同的actionresult名称集成? (MVC)

时间:2016-06-13 04:08:31

标签: c# asp.net-mvc

我想做什么:

使用两个httpPost动作结果,它们现在具有相同的名称(索引)..但是当我更改其中任何一个的名称并运行代码时,没有任何反应。我该如何修改我的代码以便我的所有行动结果都会运行?

       [HttpPost]
    public async Task<ActionResult> Index(HttpPostedFileBase photo)
    {
        ViewBag.hello = "hello world";

        var imageUrl = await imageService.UploadImageAsync(photo);
        ViewBag.Ult = imageUrl;
        //TempData["LatestImage"] = imageUrl;
        return View("Index");



    }

上面的代码是我的第一个Index actionresult,它运行得很好,但是当我再放一个,所有的地狱都崩溃了:

    [HttpPost]
    public ActionResult Index(ModelVariables model)
    {  //code
}

要点: 我想这样做:

[HttpPost]
    public async Task<ActionResult> Index(HttpPostedFileBase photo + Modelvariables model)
    {  //code
}

我只想拥有一个httpPost方法,但要包含&#39;照片&#39;和&#39;模型&#39;

1 个答案:

答案 0 :(得分:1)

您不能拥有两个名称相同的[HttpPost]方法。假设您有一个包含Modelvariables控件的表单以及一个文件输入,那么在POST方法中添加两个参数

public ActionResult Index(ModelVariables model, HttpPostedFileBase photo)

或更好的是,将属性public HttpPostedFileBase Photo { get; set; }添加到ModelVariables类,以便您可以使用

public ActionResult Index(ModelVariables model)