mvc httppost 函数从哪里获取其参数



我正在编辑一个几乎没有留下任何评论的人编写的代码。我试图找到httppost函数中的参数来自哪里。(在这种情况下ism(。

 [HttpPost]
 [SessionCheckFilter]
 [LogFilter]
 [ValidateInput(false)]
 [ActionName("Save")]
 public ActionResult Save(StructureViewModelPOST ism){...}

问题是,StructureViewModelPOST仅用于此函数。没有其他引用。我想更改ism中的数据,但我不知道它来自哪里。当有人按下我的表单中的"保存"或"保存并关闭"按钮时,将调用此函数

<a class="btn btn-primary fixed-width navigation"  href="#" onclick="checkTotalValue(1);"><i class="icon-save pull-left navigation"></i>Save</a>

表单在我的视图中是这样创建的:

@using (Html.BeginForm("Save", "Invoice", FormMethod.Post, new { @class = "form-horizontal" }))

意识到我没有为您提供回答这个问题所需的所有信息,但我不能只粘贴整个项目,我真的不知道需要什么信息来回答它。

MVC 模型绑定器按照约定工作,也就是说,它尝试将 HTML <input name="ThePropertyName" id="ThePropertyName"/> 元素的名称和 ID 与控制器中的 post 操作接受的模型类中的属性进行匹配。

所以如果类StructureViewModelPOST有一个属性string ThePropertyName { get; set; },此属性将使用具有name="ThePropertyName"的匹配输入的值填充。

有多种方法可以使用正确的名称呈现此输入。

使用使用 @model 指令定义的 ViewModel,并解析要与编辑器模板一起使用的输入类型:

@model StructureViewModelPOST
@Html.EditorFor(m => m.ThePropertyName)

或者更直接:

@Html.TextBox(nameof(StructureViewModelPOST.ThePropertyName), "")

基本上操作参数是从发布的表单字段绑定的

每个字段都绑定到具有相同名称的相应属性

例:

<input type='text' name='TotalDiscount' />

将绑定到主义。总折扣

检查这些链接

什么是 MVC ASP.NET 模型绑定?

和模型活页夹部分在这里

https://weblogs.asp.net/scottgu/asp-net-mvc-preview-5-and-form-posting-scenarios

最新更新