参数没有在 ActionResult 中给出正确的值
The params doesn't give the right values in the ActionResult
我有一个导入 Excel-数据的过程。那很好用。但是为了开始这个过程,我必须 select 一些值。 "Year from", "Year to" 参数为Test.
我想更改导入值的范围。我尝试了几种解决方案。但没有任何效果。
更改值并单击提交按钮后,我想查看新值。
我必须在代码中更改什么?
这是操作结果:
[HttpPost]
public IActionResult Importeren(int jaarVan, int jaarTm, bool isTest)
{
//minValue = 1981; maxValue = 2004; isTest = true;
_importProces.Start(jaarVan, jaarTm, isTest);
return View();
}
这是 html 页:
@using (Html.BeginForm("Importeren", "Home", new { jaarVan = ViewBag.JaarVan, jaarTm = ViewBag.JaarTm, isTest = ViewBag.IsTest }, FormMethod.Post))
{
<div class="form-group">
<div class="col-md-2 col-xl-2">
@Html.Label("Jaar vanaf:")
</div>
<div class="col-md-2 col-xl-2">
@Html.Hidden("#JaarVan")
<span id="lblJaarVan">@ViewBag.JaarVan</span><input type="range" id="jaarVan" value="@ViewBag.JaarVan" min="@ViewBag.MinValue" max="@ViewBag.MaxValue" step="1"
onshow="showJaarVan(this.value)" oninput="showJaarVan(this.value)" onchange="showJaarVan(this.value)" />
</div>
<div class="col-md-2 col-xl-2">
@Html.Label("Jaar tot/met:")
</div>
<div class="col-md-2 col-xl-2">
@Html.Hidden("#JaarTm")
<span id="lblJaarTm">@ViewBag.JaarTm</span><input type="range" id="jaarTm" value="@ViewBag.JaarTm" min="@ViewBag.MinValue" max="@ViewBag.MaxValue" step="1"
onshow="showJaarTm(this.value)" oninput="showJaarTm(this.value)" onchange="showJaarTm(this.value)" />
</div>
<div class="col-md-2 col-xl-2">
@Html.Label("Is test:")
@Html.Hidden("#IsTest")
<input type="checkbox" id="isTest" value="@ViewBag.IsTest" checked="@ViewBag.IsTest" />
</div>
@*<progress*@
<p> <input class="text-primary" type="submit" value="Import Exceldata" name="Opslaan" /></p>
</div>
}
<script>
//$(document).ready(function () {
// $('#frmsubmit').submit(function () {
// var jaarVan = document.getElementById("#jaarVanRange").value;
// var jaarTm = document.getElementById("#jaarTmRange").value;
// var isTest = document.getElementById("#isTest").value;
// })
//});
function showJaarVan(newVal) {
document.getElementById("lblJaarVan").innerHTML = newVal;
ViewViewBag.JaarVan = newVal;
}
function showJaarTm(newVal) {
document.getElementById("lblJaarTm").innerHTML = newVal;
ViewViewBag.JaarTm = newVal;
}
</script>
我相信 MVC 表单的模型绑定 posts 依赖于您输入的名称属性,请尝试向您的输入添加名称以匹配您操作中的参数:
<input type="range" id="jaarTm" name="jaarTm" value="@ViewBag.JaarTm" min="@ViewBag.MinValue" max="@ViewBag.MaxValue" step="1" onshow="showJaarTm(this.value)" oninput="showJaarTm(this.value)" onchange="showJaarTm(this.value)" />
我也不认为您需要在 BeginForm() 调用中包含路由值对象,因为表单数据在模型绑定中具有更高的优先级。该对象也在 post 之前进行评估,并保留原始年份而不是您在范围输入中设置的新年份。
我有一个导入 Excel-数据的过程。那很好用。但是为了开始这个过程,我必须 select 一些值。 "Year from", "Year to" 参数为Test.
我想更改导入值的范围。我尝试了几种解决方案。但没有任何效果。 更改值并单击提交按钮后,我想查看新值。
我必须在代码中更改什么?
这是操作结果:
[HttpPost]
public IActionResult Importeren(int jaarVan, int jaarTm, bool isTest)
{
//minValue = 1981; maxValue = 2004; isTest = true;
_importProces.Start(jaarVan, jaarTm, isTest);
return View();
}
这是 html 页:
@using (Html.BeginForm("Importeren", "Home", new { jaarVan = ViewBag.JaarVan, jaarTm = ViewBag.JaarTm, isTest = ViewBag.IsTest }, FormMethod.Post))
{
<div class="form-group">
<div class="col-md-2 col-xl-2">
@Html.Label("Jaar vanaf:")
</div>
<div class="col-md-2 col-xl-2">
@Html.Hidden("#JaarVan")
<span id="lblJaarVan">@ViewBag.JaarVan</span><input type="range" id="jaarVan" value="@ViewBag.JaarVan" min="@ViewBag.MinValue" max="@ViewBag.MaxValue" step="1"
onshow="showJaarVan(this.value)" oninput="showJaarVan(this.value)" onchange="showJaarVan(this.value)" />
</div>
<div class="col-md-2 col-xl-2">
@Html.Label("Jaar tot/met:")
</div>
<div class="col-md-2 col-xl-2">
@Html.Hidden("#JaarTm")
<span id="lblJaarTm">@ViewBag.JaarTm</span><input type="range" id="jaarTm" value="@ViewBag.JaarTm" min="@ViewBag.MinValue" max="@ViewBag.MaxValue" step="1"
onshow="showJaarTm(this.value)" oninput="showJaarTm(this.value)" onchange="showJaarTm(this.value)" />
</div>
<div class="col-md-2 col-xl-2">
@Html.Label("Is test:")
@Html.Hidden("#IsTest")
<input type="checkbox" id="isTest" value="@ViewBag.IsTest" checked="@ViewBag.IsTest" />
</div>
@*<progress*@
<p> <input class="text-primary" type="submit" value="Import Exceldata" name="Opslaan" /></p>
</div>
}
<script>
//$(document).ready(function () {
// $('#frmsubmit').submit(function () {
// var jaarVan = document.getElementById("#jaarVanRange").value;
// var jaarTm = document.getElementById("#jaarTmRange").value;
// var isTest = document.getElementById("#isTest").value;
// })
//});
function showJaarVan(newVal) {
document.getElementById("lblJaarVan").innerHTML = newVal;
ViewViewBag.JaarVan = newVal;
}
function showJaarTm(newVal) {
document.getElementById("lblJaarTm").innerHTML = newVal;
ViewViewBag.JaarTm = newVal;
}
</script>
我相信 MVC 表单的模型绑定 posts 依赖于您输入的名称属性,请尝试向您的输入添加名称以匹配您操作中的参数:
<input type="range" id="jaarTm" name="jaarTm" value="@ViewBag.JaarTm" min="@ViewBag.MinValue" max="@ViewBag.MaxValue" step="1" onshow="showJaarTm(this.value)" oninput="showJaarTm(this.value)" onchange="showJaarTm(this.value)" />
我也不认为您需要在 BeginForm() 调用中包含路由值对象,因为表单数据在模型绑定中具有更高的优先级。该对象也在 post 之前进行评估,并保留原始年份而不是您在范围输入中设置的新年份。