使用一个帖子函数

时间:2016-11-30 00:41:48

标签: asp.net asp.net-mvc entity-framework asp.net-mvc-4 razor

这个例子我一直在努力学习最佳实践,但我似乎无法做到正确。这是我试图在视图上完成的模型,然后将其绑定到帖子中的模型。这是test测试有几个属性以及testItems(一对多关系)的集合

enter image description here

上述表格的模型代码如下:

public class Test
{
    public int TestID { get; set; }
    public virtual ICollection<TestItem> TestItems { get; set; }
}

public class TestItem
{
    public int TestID { get; set; }
    public int TestItemScore { get; set; }
    public int? TestID { get; set; }
    public virtual Test Test { get; set; }
}

目前我发布表单的方法是制作帖子方法

接受一个模型,然后是两个数组,一个问题和一个答案,然后将它们制作成post函数中的对象,然后添加到我传递给函数的模型中。

public ActionResult PostATest (Test test, string[] questions, string[] answers){
   //create a list of test.testItems
   //create a new test item class
   //loop over the array of questions and add an answer and question to the test item class
   //add the test item to the test
   //repeat until all questions and answers are added to new object


   //save the test object to the db context.
   db.tests.save(test);
}

所以上面的代码就是我一直在做这些一般做法的方法,但是这方面存在严重的问题,特别是当我回过头来尝试制作一个我可以编辑的模型时。

大多数html必须使用类似的变量名称手动完成,以使字符串数组可绑定。

理想情况下,我希望在我的帖子中有一个简单的函数(下面的函数),它会知道一个模型中有多个模型。它需要具有灵活性,以便在提交表单时自动创建测试模型并将其提供给帖子,它还会创建testItem模型。

 public actionResult testPost(Test test){

    }

或者至少有一个像这样发帖的帖子

public actionResult testPost(Test test, TestItem[] testItem){

}

我这样做的方式与上面提到的第一个post方法建议大约一个月一样,而且我似乎无法找到任何其他方法来做到这一点,而不会使测试中的每个项目都是自己的形式。

非常感谢解决这个问题的彻底方法。提供的代码只是示例代码,如果我需要一些实际实现的代码,请询问。我已经在几个不同的背景下做到了这一点,必须有更好的方法来解决这个问题。

我目前正在做的最大问题是,现在以我现在的方式返回并编辑表单非常困难。

请注意您对我在评论中提出问题的方式有任何疑问,或者是否有任何我需要更清楚的问题。

0 个答案:

没有答案