首页 > 解决方案 > 用 Html 页面或 Javascript 值填充 Html.BeginForm 路由值(不是按模型值)

问题描述

在 asp.net mvc 5 中,页面上有一个值,该用户被输入或以某种方式由 javascript 计算。我需要把它放在 TO 和 FROM 部分的 Html.BeginForm 中。代码示例如下:

我的页面.cshtml

<input id="datepickerFrom" value="31/12/2017" title="datepicker" />
<input id="datepickerTo" value="30/06/2018" title="datepicker" />
@using (Html.BeginForm("ExportToExcel", "DashBoard", new inputDates { from = "", to = "" }, FormMethod.Post))
{
     <input type="submit" value="Export to Excel" class="button" />
}

Controller.ActionName

public ActionResult ActionName(inputDates dates)
{
     //some actions 
       return new HttpStatusCodeResult(555, "Everything is OK");
}

类 inputDates

public class inputDates
{
     public DateTime? from { get; set; }
     public DateTime? to { get; set; }
}

我找到了很多使用模型的答案,但我的值 a 不是来自模型。我不知道如何从 html 元素或 javascript 值中获取值。

谢谢你的帮助。

标签: c#asp.net-mvcasp.net-mvc-5

解决方案


   @model inputDates //do proper import of class here.

   @using (Html.BeginForm("ExportToExcel", "DashBoard", FormMethod.Post))
    {
         @Html.TextBoxFor(m => m.from)
         @Html.TextBoxFor(m => m.to)
         <input type="submit" value="Export to Excel" class="button" />
    }

这应该可以,只需查看 MVC 是否自动将文本转换为日期时间。好久没用这个了,所以记忆模糊。另外,请阅读 MVC 中的模型绑定。

一些链接 https://www.c-sharpcorner.com/UploadFile/4b0136/introduction-to-model-binding-in-Asp-Net-mvc/

https://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx

https://www.codeproject.com/Articles/710776/Introduction-to-ASP-NET-MVC-Model-Binding-An-Absol


推荐阅读