C# 使用Html.BeginForm和ajax调用相同的操作冲突?
当我尝试添加C# 使用Html.BeginForm和ajax调用相同的操作冲突?,c#,ajax,asp.net-mvc,asp.net-ajax,C#,Ajax,Asp.net Mvc,Asp.net Ajax,当我尝试添加Ajax以将另一个数据传递到我的动作控制器时,我的模型参数受到影响,该值为null,而我的Ajax参数有一个值我不认为这是因为我使用的是Html.beginform('index','payment'),我使用的是Ajaxurl:'@url.Action('index',payment'),,具有相同的操作结果。 你可以看到下面的参考资料 @using (Html.BeginForm("index", "payable", FormMethod
Ajax
以将另一个数据传递到我的动作控制器时,我的模型参数受到影响,该值为null,而我的Ajax
参数有一个值我不认为这是因为我使用的是
Html.beginform('index','payment')
,我使用的是Ajax
url:'@url.Action('index',payment'),
,具有相同的操作结果。
你可以看到下面的参考资料
@using (Html.BeginForm("index", "payable", FormMethod.Post, new { enctype = "multipart/form-data" }))<div class="col-md-2">
<div class="form-group">
@Html.LabelFor(x => x.Amount, new { @class = "form-label" })
@Html.TextBoxFor(x => x.Amount, new { @class = "form-control" })
</div>
</div>
<div class="col-md-2">
<div class="form-group">
@Html.LabelFor(x => x.ImagePath, new { @class = "form-label" })
<input type="file" name="file" id="files" />
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<button type="submit" id="btnUpload" class="btn btn-primary btn-sm" onclick="saveSelected()"><i class="fas fa-save"></i> Submit Payment</button>
</div>
</div>{
我的控制器
public ActionResult Index(PayableFormModel model, HttpPostedFileBase file, int[] ids)
{
return View();
}
- Beginform和ajax不能同时使用,即使您添加了 onclick函数。因此ajax无法工作,所有数据都已提交 按形式。若要提交模型和任何其他数据,请将它们全部放入表单中,或者只使用ajax
- 上载文件时,模型无法直接获取文件的名称或路径。您应该将文件存储到一个文件夹或目录中,然后将此路径分配给模型的imagepath。(Examle代码已被清除)
- 在索引页中,{}应该跟在using()后面,否则它将报告错误
public ActionResult Index(PayableFormModel model,HttpPostedFileBase file,int[] ids) { string filepath = Server.MapPath("~/image/"); Directory.CreateDirectory(filepath); file.SaveAs(Path.Combine(filepath, file.FileName)); model.ImagePath = filepath + file.FileName ; return View(); }
public ActionResult Index(PayableFormModel model,HttpPostedFileBase file,int[] ids)
{
string filepath = Server.MapPath("~/image/");
Directory.CreateDirectory(filepath);
file.SaveAs(Path.Combine(filepath, file.FileName));
model.ImagePath = filepath + file.FileName ;
return View();
}