在ASP.net MVC4中的Html.BeginForm中的多个按钮中发出问题

时间:2014-01-17 06:14:51

标签: c# jquery html asp.net-mvc asp.net-mvc-4

我正在使用c#

在asp.net MVC4中完成我的项目

我正在尝试选择照片并将该图像保存在文件夹中,

为此我有一个html Begin表单

 @using (Html.BeginForm("ImageReplace", "Member", new { imgid = @Model.Id }, FormMethod.Post,new { enctype = "multipart/form-data" }))
  { 
     <input type="text" name="fake_section" class="fake_section"><button class="fake_section">Choose Photo</button>
     <input type="file" style="display:none;" name="file" id="file" value="Choose Photo" accept="image/png,image/jpeg" /> 
     <input type="submit" name="submit" value="Submit" />
   }

我还有一个控制器

  public ActionResult ImageReplace(HttpPostedFileBase file,int imgid)
    {
        ......
    }

为了样式化和验证表单(只选择gif和jpeg文件),我使用以下jquery

 $('.fake_section').click(function (e) {
    e.preventDefault();

    $('#file').trigger('click');
});

$('#file').change(function (e) {
    var filename = $(this).val();
    var ext = filename.split('.').pop().toLowerCase();

    if ($.inArray(ext, ['gif', 'jpg', 'jpeg']) == -1) {
        alert('not valid!');
    }
    else {
        $('input[name="fake_section"]').val(filename);
    }
});

enter image description here

我的问题是点击选择照片时直接转到控制器操作而不选择照片

1 个答案:

答案 0 :(得分:3)

我认为缺少按钮类型。 看看这个jsFiddle:http://jsfiddle.net/CJf9f/

<button class="fake_section" type="button">Choose Photo</button>