在c#中使用模型而不需要数据库
本文关键字:不需要 数据库 模型 | 更新日期: 2023-09-27 18:04:41
我对c#和ASP比较陌生。. NET MVC 5,但我希望一些帮助。我有一个应用程序,我有一个类,大约有20个变量。它有一些Guid
,一些List<string>
, int
, string
等,相对简单。我的控制器将被传递这个类,然后我需要将数据从类发送到视图,然后通过表单提交将其返回给控制器。我到处都看到关于如何使用实体框架模型的教程,但我没有找到任何关于使用没有数据库的模型的教程。是否有可能(如果有的话,如何)在没有数据库的情况下使用模型?如果这是不可能的,我还可以用什么方法来使用它?我考虑过一个会话变量,但似乎每个用户都有很多开销,我在这里有点难住了。提前感谢:)
这是一个如何在MVC中使用模型的例子…
控制器
public class ExampleController : Controller
{
public ActionResult Test()
{
TestViewModel model = new TestViewModel
{
Id = Guid.NewGuid().ToString(),
Name = "Foo bar"
};
return this.View(model);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Test(TestViewModel model)
{
if (!this.ModelState.IsValid)
{
return this.View(model);
}
return this.Content("Success");
}
}
View Model
public class TestViewModel
{
[Required]
public string Id { get; set; }
[Required]
public string Name { get; set; }
}
@model TestViewModel
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (this.Html.BeginForm())
{
@(this.Html.ValidationSummary(false))
@(this.Html.AntiForgeryToken())
@(this.Html.EditorFor(model => model.Id))
@(this.Html.ValidationMessageFor(model => model.Id))
@(this.Html.EditorFor(model => model.Name))
@(this.Html.ValidationMessageFor(model => model.Name))
<input type="submit" value="Submit!"/>
}
默认情况下,MVC也会根据简单的命名约定生成路由表,在本例中,导航到http://yoursite/example/test
查看实际示例
您不需要数据库来拥有模型。模型只定义要来回传递的数据,因此数据库绝对不是必需的。实际上,理想情况下,模型应该与数据库无关。例如,您可能有一个CustomerOrder模型和一个Product模型。
public class CustomerOrder
{
public int Id {get; set;}
public List<Product> Products {get; set;}
public int CustomerId {get; set;}
}
public class Product
{
public int Id {get; set;}
public string Name {get; set;}
public string Description {get; set;}
public double Price {get; set;}
}
您可能需要某种类型的数据存储(平面文件,关系数据库,非关系数据库,基于web的存储),但取决于您想要传递的数据,它来自任何地方
mvc模型是纯c#对象,用于在控制器和视图之间传递信息。所以你可以独立于数据库使用它们。如果以后需要将信息持久化,可以先使用EntityFramework代码,或者将它们序列化到平面文件中。