我是初学者,我认为我的问题非常明显,但我陷入其中!
在MVC中尝试将不是我视图的主模型的自定义模型(类)传递给我的控制器。 我的剃刀代码如下:
@helper CreatForm()
{
MyViewModel myModel = new MyViewModel();
using (Html.BeginUmbracoForm("Post", "ShowPost", FormMethod.Post, new { @class = "formCM" }))
{
myModel.PostNode = Node.GetCurrent();
<div class="row">
@Html.TextBoxFor(x => myModel.Name, new Dictionary<string, object> { { "placeholder", "Name" } })
</div>
<div class="row">
@Html.TextBoxFor(x => myModel.Email, new Dictionary<string, object> { { "placeholder", "Email Address" } })
</div>
<div class="row">
@Html.TextBoxFor(x => myModel.Website, new Dictionary<string, object> { { "placeholder", "Website" } })
</div>
<div class="row tall">
@Html.TextAreaFor(x => myModel.Comment, new Dictionary<string, object> { { "placeholder", "Comment" } })
</div>
<div class="row">
<input type="submit" id="Submit" name="Submit" value="Submit" />
</div>
}
}
点击“提交”按钮将我带到控制器,但模型始终为空。
我的控制器如下:
[HttpPost]
public ActionResult Post(MyViewModel model)
{
return this.View();
}
有什么建议吗?我是否必须将此MyModel属性添加到当前页面的ViewData?
答案 0 :(得分:2)
创建一个采用MyViewModel的部分视图 - 使Html.TextBoxFor()
以您希望的方式工作所需的部分视图。然后从主视图中调用该部分视图。假设您将视图命名为“myForm”,并将其放在共享文件夹中。然后在主视图中:
@Html.Partial("myForm", myModel)