使用HTML页面或Javascript值填充Html.BeginForm路由值(不是按Model值)

时间:2018-08-16 09:43:54

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

在asp.net mvc 5中,页面上有一个值,该用户已输入或通过javascript计算得出。我需要将其放在Html.BeginForm中的TO和FROM部分中。代码示例如下:

MyPage.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; }
}

我发现了很多使用Model的答案,但是我的值a不是来自model。我不知道如何从html元素或javascript值中获取值。

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

   @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中的模型绑定的信息。

某些链接 enter image description here

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