C# 如何在MVC中创建动态表单

C# 如何在MVC中创建动态表单,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,在asp.net中使用控件是一件非常简单的事情,但我不知道如何在MVC中实现它。我有一个页面,希望用户在其中键入其员工id。如果数据库中有员工id,我希望删除登录并显示调查,以便他们填写。如果employeeid不在数据库中,我想向他们显示一个表单来收集他们的员工信息。在他们提交信息后,我想向他们展示调查结果 他们可以填写多个调查,因此我希望将调查提交到同一页面,并可以选择创建新调查或编辑他们以前所做的调查。每当他们来到这个页面并输入他们的员工id时,我都会向他们显示他们以前的调查列表,并选择创

在asp.net中使用控件是一件非常简单的事情,但我不知道如何在MVC中实现它。我有一个页面,希望用户在其中键入其员工id。如果数据库中有员工id,我希望删除登录并显示调查,以便他们填写。如果employeeid不在数据库中,我想向他们显示一个表单来收集他们的员工信息。在他们提交信息后,我想向他们展示调查结果

他们可以填写多个调查,因此我希望将调查提交到同一页面,并可以选择创建新调查或编辑他们以前所做的调查。每当他们来到这个页面并输入他们的员工id时,我都会向他们显示他们以前的调查列表,并选择创建一个新的调查


如何在MVC中实现这一点?我是否为调查和登录表单创建视图并使用分区?我不确定MVC如何最好地处理这种情况

我建议您研究一下web应用程序的MVC模式 从这里开始。。。

对于登录场景,请查看以下内容

我会有一个这样的结构

操作->(全部、单次创建、单次更新、单次删除)

操作->(全部、单次创建、单次更新、单次删除)

操作->(创建、更新、删除)

调查是带有行动的调查。。。培训是针对用户填写的调查问卷。。。用户就是用户

这可能是一个简单的运行如何结构的mvc路线的第一枪。。。魔鬼在细节中=)。。。像往常一样。。。 但这应该给你足够的食物开始


HTH

您可以根据提供的ViewMdel(或ViewBag,如果您使用它),轻松更改视图中显示的内容。例如:

@if (Model.HasEmployeeID)
{
    <form>
        <!-- your form here -->
    </form>
}
else
{
    <div class="survey">
        <!-- your survey here -->
    </div>
}
@if(Model.HasEmployeeID)
{
}
其他的
{
}
对于只使用一次的内容,您可以将其全部保留在一个视图中。对于可重用的东西(或者如果您喜欢该级别的组织),您可以使表单和/或调查成为局部视图


根据您的描述,我希望调查至少适合局部查看。

您尝试过这两种方法吗?根据用户界面的工作方式,有多种方法可以完成这些任务。您可以使用分区,重定向到新页面,MVC中的UI设计与WebForms中的UI设计没有什么不同。我尝试了一个带有分部的视图(简单的文本框,包含employeeid)。当用户点击submit时,表单调用操作并检查数据库。但它会再次返回带有employeeid文本框的分部。我想让它消失。另外,我想展示另一部分?与调查有关。我担心使用MVC有一个很好的方法来实现这一点,但我正在尝试应用asp.net技术。您是否建议在模型中放置bool HasEmployeeID,或者执行类似操作:if(model.EmployeeID!=“”)。。。然后显示表单?这最终帮助我构造了一个解决方案,尽管我使用if(Model==null)作为测试。我通常更喜欢bool值而不是null检查,因为其意图非常明确。在我看来,null值影响流逻辑并不是那么直观。