我在c#/ mvc5工作,我正在尝试将选定的一周返回给我的控制器。
在视图中,我创建了一个类型为'周'的html输入控件。从我收集的内容中,这应该返回一个表示周和年的字符串值。我通过viewmodel传递数据。
我总是在控制器中得到一个空字符串。 知道我做错了吗?我发现使用周类型的html5输入很少。
以下是视图:
@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();
}
答案 0 :(得分:0)
事实证明,这是因为视图模型中没有默认的getter和setter。
当我将public string Week;
更改为public string Week {get; set;}
时,它可以正常工作。