c#不能用type=week模型绑定到新的html输入

本文关键字:html 输入 绑定 模型 不能 type week | 更新日期: 2023-09-27 18:16:38

我正在c#/mvc5中工作,我试图将选定的一周返回到我的控制器。

在视图中,我呈现了一个类型为'week'的html输入控件。从我收集这应该返回一个字符串值,表示星期和年。我通过视图模型传递数据。

我总是在控制器中得到一个空字符串。知道我做错了什么吗?我发现html5的输入很少使用周类型。

View:

@model JoscoConnect.ViewModels.NewTransactionViewModel
@using System.Web.UI.WebControls
@{
    ViewBag.Title = "New";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>New Transaction</h2>
@using (Html.BeginForm("Create", "Transaction", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <div class="form-group">
        @Html.TextBoxFor(m => m.Week, new { type = "week"})
    </div>
    <div class="form-group">
        @Html.LabelFor(m => m.trustedFile)
        @Html.TextBoxFor(m => m.trustedFile, new { type = "file" })
    </div>
    <input class="form-control btn btn-primary" type="submit" name="Submit" value="Submit" />
}

这是ViewModel:

namespace JoscoConnect.ViewModels
{
    public class NewTransactionViewModel
    {
        public string Week;
        [Required,Display(Name = "Trusted File")]
        public HttpPostedFileBase trustedFile { get; set; }
    }
}

这是控制器的动作:

[HttpPost]
public ActionResult Create(NewTransactionViewModel newTransactionViewModel)
{
    string week = newTransactionViewModel.Week.ToString();
    TrustedImport trustedImport = new TrustedImport();
    bool result = trustedImport.CheckFileExists("test1");
    return View();
}

c#不能用type=week模型绑定到新的html输入

原来这是由于视图模型中没有默认的getter和setter。

当我将public string Week;更改为public string Week {get; set;}时,它可以正常工作。