我正在尝试在我的表单中发送一些额外的数据,并在控制器端读取它。
我的表单是一个用Html.BeginForm创建的基本表单,其中有两个与模型中的列相对应的Html.Textboxes。到目前为止,传递给控制器的模型具有正确的信息,但我不确定如何发送不在模型上的信息,以及如何在控制器上提取这些信息。
谢谢
发布于 2018-01-26 17:39:10
下面是一个示例,展示了如何从表单传递额外数据并在控制器中使用它:
你的控制器将接受你的模型+额外的数据。如果您有多个参数,可以将它们添加到方法签名中。
[HttpPost]
public IActionResult MyMethod(MyData myData, string extra)
{
}在表单中,您可以使用asp-route-*属性传递额外的数据:
@model MyData
<form asp-action="MyMethod" asp-controller="Home" asp-route-extra="myExtraData">
<input asp-for="Name"/>
<input asp-for="Age" />
<input type="submit" value="submit"/>
</form>您的模型类将如下所示:
public class MyData
{
public string Name { get; set; }
public int Age { get; set; }
}发布于 2018-01-26 17:18:18
您可以将任何输入数据作为表单输入发布。我使用了隐藏输入。
模型
public class MyModel {
public string Name { get; set; }
}视图
@using (Html.BeginForm("MyModelPost", "Home", FormMethod.Post))
{
@Html.ValidationSummary(true)
<fieldset>
model field : @Html.TextBoxFor(model => model.Name) <br />
custom field(can be any input) : <input type="hidden" name="extraParam" value="extra value" >
</fieldset>
<input type="submit" value="submit">
}控制器
[HttpPost]
public IActionResult MyModelPost(MyModel model,string extraParam){
Debug.WriteLine($"model param {model.Name}");
Debug.WriteLine($"extra param {extraParam}");
return View();
//out put:
// model param adsfs
// extra param extra value
}https://stackoverflow.com/questions/48456123
复制相似问题