javascript asp.net 核心日期字段未回发至控制器

1bqhqjot  于 2023-02-28  发布在  Java
关注(0)|答案(1)|浏览(150)

我使用的是asp.net内核,它有一个剃刀页面,视图模型有一个字段SearchDate,表示只有日期,只有当参数是字符串-〉时,日期字段才会回发到MVC控制器

  • 公共异步任务LoadOrders(字符串searchDate)*.

我想把与剃刀页面关联的整个视图模型发送到MVC控制器,因为我还需要其他视图模型属性。如果我把上面方法的签名更改为:

  • 公共异步任务EOMOrdersLoad(SomeViewModel模型)*

视图模型中的日期始终为空,cshtml中的字段定义如下
asp-for=“搜索日期”类型=“日期”类=“表单控件”名称=“搜索日期”id=“搜索日期”样式=“宽度:40%”值="”
我已经删除了'value=""'属性,它不会影响发送回MVC控制器的内容。我还尝试使用@Html.EditorFor,但也不起作用。
我希望这是一个愚蠢的事情,我正在做的是固定的,而不是一个问题,如何MVC职位回日期字段从视图。
我已经浏览了StackOverflow,并没有真正找到任何与我的问题相匹配的东西,但尝试了很多不同的建议解决方案。

dwbf0jvd

dwbf0jvd1#

请尝试下面的示例。
查看模型:

public class SomeViewModel
{
    public string Description { get; set; }
    public DateTime SearchDate { get; set; }    
}

控制器方法:

public IActionResult Index()
{
    var model = new SomeViewModel()
    {
        Description = "description 123",
        SearchDate = DateTime.Now
    };
    return View(model);
}

[HttpPost]
public IActionResult EOMOrdersLoad(SomeViewModel data)
{
    //... your code here
    return RedirectToAction("Index", data);
}

Index.cshtml视图:

@model Models.SomeViewModel

<form id="form" asp-action="EOMOrdersLoad">
    <div >
        <label asp-for="Description" class="form-label">
            @Html.DisplayNameFor(model => model.Description)
        </label>
        <textarea asp-for="Description" class="form-control" id="exampleFormControlTextarea1" ></textarea>
        <span asp-validation-for="Description" class="invalid-feedback"></span>
    </div>
    <div>
        <label asp-for="SearchDate" class="form-label">
            @Html.DisplayNameFor(model => model.SearchDate)
        </label>
        <input asp-for="SearchDate" type="date" class="form-control" >
    </div>
    <br>
    <div>
        <input type="submit" value="Save" />
    </div>
</form>

相关问题