0

我有一个表单在多个页面上出现多次。我想把这个表单放在部分视图中,并使用数据注解来验证它。MVC - 使用数据注释在部分视图中的同一页上显示多个表格

这是我走到这一步:

控制器:

public ActionResult Form() 
{ 
    return PartialView("_Form", new FormInput()); 
} 


[HttpPost] 
public ActionResult Form(FormInput model) 
{ 
    if (!ModelState.IsValid) 
    { 
     return PartialView("_Form", model); 
    } 

    return PartialView("Form", new FormInput()); 
} 

查看:

<div> 
    @Html.Action("Form", "Forms") 
</div> 
<div> 
    @Html.Action("Form", "Forms")  
</div> 

局部视图:

@using (Html.BeginForm("Form", "Forms")) 
{ 
    <div> 
     @Html.TextBoxFor(x => x.Name) 
     @Html.ValidationMessageFor(x => x.Name) 
    </div> 
    <div> 
     @Html.TextBoxFor(x => x.Email) 
     @Html.ValidationMessageFor(x => x.Email) 
    </div> 
    <input type="submit"/> 
} 

在这段代码中,控制器返回只是部分观点而不是主要观点。我做错了什么?

是通过ajax.beginform解决这个问题的唯一解决方案吗?我真的很想使用标准帖子。

提前致谢!

+0

什么返回您的主视图看起来像操作方法? – dotnetesse

+0

嗯..好吧,以及控制器看起来不同,因为窗体出现在页面上的不同位置。有的仅返回一个视图和一些模型视图。 – user943369

回答

0

您需要在控制器get方法中返回'view'。

然后,在您浏览网页渲染的部分观点:

@Html.Partial("_Form", new FormInput()) 
相关问题