2015-07-26 3 views
0

Я относительно новичок в C# и ASP.NET MVC 5, но я надеялся на какую-то помощь. У меня есть приложение, где у меня есть класс с примерно 20 переменными. Он имеет некоторые Guid, некоторые List<string>, int, string и т. Д. Относительно просто. Мой контроллер будет передан этому классу, а затем мне нужно будет отправить данные из класса вниз в представление, а затем вернуть его в контроллер на форме submit. Всюду я вижу учебники о том, как использовать модель с сущностью, но нигде я ничего не нашел, просто используя модель без базы данных. Возможно ли (и если да, как) использовать модель без базы данных? Если это невозможно, какие другие способы я могу использовать? Я думал о переменной сеанса, но это выглядело как много накладных расходов для каждого пользователя, но я немного здесь. Спасибо заранееИспользовать модель в C# без базы данных?

+0

Мне не нужен весь накладной и дополнительный код в моем проекте, я просто хочу, чтобы простой способ получить достаточное количество данных и из моих представлений/контроллеров. – WookieCoder

+0

Вам не нужно ничего могать, на самом деле ваши модели просмотра должны быть разделены отдельно от ваших моделей домена в любом случае ... Я отправлю пример –

ответ

2

Вот пример того, как вы используете модели в 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"); 
    } 
} 

The View Model

public class TestViewModel 
{ 
    [Required] 
    public string Id { get; set; } 

    [Required] 
    public string Name { get; set; } 
} 

The View

@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, чтобы увидеть этот пример в действии

1

Вам не нужна база данных, чтобы иметь модели. Модели просто определяют данные для передачи назад и вперед, поэтому база данных определенно не нужна. Фактически, модель в идеале должна быть агностикой базы данных. Например, у вас может быть модель CustomerOrder и модель продукта.

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;} 
} 

Вы, вероятно, потребуется какое-то хранилище данных (плоские файлы, реляционные базы данных, не-реляционная база данных, веб-основе хранения), но в зависимости от данных, которые вы хотите передать, он пришел из любой точки мира.

0

MVC модели являются чисто C# объекты Cary информации между контроллером и просмотр. Таким образом, вы можете использовать их независимо от базы данных. Если вам нужно, чтобы ваша информация сохранялась, вы можете сначала использовать код EntityFramework или сериализовать их в плоском файле.

Смежные вопросы