2013-04-22 1 views
1

Я пытаюсь создать сайт C# ASP.NET MVC4. Я действительно не уверен в том, как я установил файл своих контроллеров. Вот как выглядит файл:Asp.NET MVC4 - «Куда они идут?»

namespace{ 
    *Some Classes that'll be used by the controllers 
    *Controller 
    *ActionResult Index(parameter) 
    *IndexViewModel 
    *Some functions (methods in asp.net?) that make database calls and bundle up 
    the content to be sent to the view 
} 

Похоже, что «некоторые классы» и «некоторые функции» неуместны здесь, но я не уверен, куда еще положить их. Любой совет? Дайте мне знать, если это поможет вставить весь файл! Я думал, что это было бы проще.

Редактировать: Спасибо вам за понимание! Так что я могу получить эту прибиты, вот классы (которые вы уже указали, должны идти в своем собственном файле CS):

public class contentObject 
{ 
    //The HTML is the content that'll be rendered on the page. 
    public string theHTML { get; set; } 
    //The title is the content's title. 
    public string theTitle { get; set; } 
} 
public class utilityItem 
{ 
    //the menu is the user-specific menu that'll be constructed 
    public string menu { get; set; } 
    //notes is the information about the user/company that might assist the 
    //tech support people 
    public string notes { get; set; } 
    //notice is company-specific text that allows us to communicate with the clients. 
    public string notice { get; set; } 
    //companyName is the company name that'll be displayed 
    public string companyName { get; set; } 
} 
public class listItem 
{ 
    /* listItem is a single entry in the menu will be used to construct the entire menu, 
    which eventually gets bundled into utilityItem.*/ 
    public int theID { get; set; } 
    public string theTitle { get; set; } 
} 

и функции выглядят следующим образом:

public contentObject buildContent(int TopicID, int userID, HelpSiteEntities1 db) 
    { 
     var queryX = (from H in db.HelpTopics 
         where H.ID == TopicID 
         select new contentObject() { theHTML = H.HTML, theTitle = H.TITLE }).ToArray(); 
     return queryX[0]; 
    } 
    public utilityItem buildUtility(int userID, HelpSiteEntities1 db) 
    { 
     var menu = ""; 
     var queryMenuItems = (from H in db.HelpTopics 
           join P in db.HelpTopicMaps 
           on H.ID equals P.TopicID 
           where P.UserID == userID 
           select new { theID = P.TopicID, theTitle = H.TITLE }).ToList(); 
     var queryVisitorInfo = (from U in db.Users 
           where U.ID == userID 
           select new { notes = U.SpecificNotes, notice = U.Notice, companyName=U.CompanyName }).ToList(); 
     int ittrvar = 0; 
     foreach (var item in queryMenuItems) 
     { 
      menu += "<li><a href='/HelpTopic/Index?TopicID=" + queryMenuItems[ittrvar].theID + "'>" + queryMenuItems[ittrvar].theTitle + "</a></li>"; 
      ittrvar++; 
     } 
     var utility = new utilityItem { menu = menu, notes = queryVisitorInfo[0].notes, notice = queryVisitorInfo[0].notice, companyName=queryVisitorInfo[0].companyName }; 
     return utility; 
    } 
} 

Так теперь, если бы я мог получить некоторые отзывы о том, куда они должны пойти, я был бы признателен.

+3

На самом деле, а не * псевдокод *, фактический код гораздо полезнее. Stack Overflow процветает при просмотре кода/конкретных вещей. Не вставляйте ** весь ** файл, но части, которые вы считаете важными. Как только пользователи, знакомые с областью ASP.NET MVC, увидят это, они смогут предоставить вам лучшую обратную связь - например, идеи и/или просить больше кода. – Jesse

+0

Обычно классам присваиваются собственные .cs-файлы и помещаются в папку моделей в MVC. Ваши «некоторые функции» нам, вероятно, нужно будет увидеть, чтобы они определяли «правильное» размещение. Я предполагаю, что они, вероятно, прекрасно находятся там, пока Контроллер - единственное, что их использует. – Shelby115

ответ

1

Я не совсем уверен, что вы ищете. Похоже, вы бросаете в темноту, ища небольшое руководство, поэтому я начну.

MVC.NET имеет некоторые очень полезные соглашения, и вы быстро узнаете их, посмотрев несколько руководств, таких как this от Microsoft. Есть много мнений по Best Practices, тоже.

Основной отправной точкой является определение ваших контроллеров, представлений и моделей (каждый из них находится в папках с одинаковым именем по соглашению). Шаблон MVC по умолчанию будет иметь HomeController и связанные представления. У Скотта Гу было несколько хороших сообщений для MVC2, которые все еще действительны, как этот на routing.

Однако вы решили настроить MVC, помните, что ваша бизнес-логика выходит на другой уровень, поэтому ваш контроллер будет вызывать бизнес-код в другом месте, что вызовет код доступа к базе данных на другом уровне.

+0

Спасибо за указатели. Я проверю эти ресурсы. – user2305673

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

  • Нет связанных вопросов^_^