Я пытаюсь создать страницу просмотра во время выполнения, когда пользователь вводит текст в текстовое поле во время выполнения, тогда создается страница просмотра с этим именем.Как создать страницу динамического просмотра в mvc2.0?
1
A
ответ
1
Все возможно. Но если вы собираетесь создать такой проект, как CMS, это неправильный подход. Вы должны хранить информацию о страницах (например, название, описание и т. Д.) В хранилище данных. Таким образом, у вас есть только одна страница.
2
Может быть мой код может помочь вам с этим
контроллер и потомок ViewPage:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using System.Web.UI;
using System.Web.UI.WebControls;
using Site.Models;
using System.Text.RegularExpressions;
using System.Web.Mvc.Html;
namespace Site.Controllers
{
public class MPSViewPage : ViewPage
{
// Here master page is being seted
protected override void OnPreInit(EventArgs e)
{
Random rnd = new Random();
int i = rnd.Next(0, 20);
string masterPageName = (i % 2) == 0 ? "Admin.Master" : "Main.Master";
string pathMasterPageFile = "~/Views/Shared/" + masterPageName;
MasterPageFile = pathMasterPageFile;
base.OnPreInit(e);
}
protected override void OnInitComplete(EventArgs e)
{
//List of ContentPlaceHolder's id is being got. See later
MasterPageAnalizer analizer = new MasterPageAnalizer();
IList<string> contentHolders = analizer.GetBodyPlaceholders(Regex.Match(MasterPageFile, "[^/]*$").ToString());
//Add content to ContentPlaceHolder
foreach (string holder in contentHolders)
{
ContentPlaceHolder placeHolder = (ContentPlaceHolder)Master.FindControl(holder);
if (placeHolder != null)
{
Content content = new Content();
placeHolder.Controls.Add(content);
//Set function for render each content
content.SetRenderMethodDelegate(RenderIndexDeletegate);
}
}
base.OnInitComplete(e);
}
protected void RenderIndexDeletegate(HtmlTextWriter w, Control c)
{
//You can use any html helpers for rendering content
w.Write("Render to <b>" + ((Content)c).Parent.ID +
"</b> url: " + Request.Params["URL"] +
" with query parameter " + ViewData["parameters"] + " <br />" +
Html.Action("GetHtmlStatic", "HtmlStatic", new{area = "HtmlStatic"}));
}
}
public class IndexController : Controller
{
public ActionResult Index(string parameters)
{
ViewData["parameters"] = parameters;
return View();
}
}
}
Master страница Analizer:
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text.RegularExpressions;
namespace Site.Models
{
public class MasterPageAnalizer
{
private DirectoryInfo dirInfo = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "Views\\Shared\\");
public IList<string> MasterPages{
get
{
IList<String> masterPageNames = new List<string>();
FileInfo[] files = dirInfo.GetFiles("*.Master");
foreach (FileInfo file in files)
{
masterPageNames.Add(file.Name);
}
return masterPageNames;
}
}
public IList<string> GetBodyPlaceholders(string masterPageName)
{
IList<string> placeholders = new List<string>();
string masterPagePath = dirInfo + masterPageName;
if (File.Exists(masterPagePath))
{
string masterPageContent = File.ReadAllText(masterPagePath);
Regex expression = new Regex(@"<asp:ContentPlaceHolder.*?ID=""(?<placeHolderId>\w+)"".*?>");
masterPageContent = Regex.Match(masterPageContent, "<body>(.|\n)*</body>",RegexOptions.Multiline).ToString();
MatchCollection matches = expression.Matches(masterPageContent);
foreach (Match match in matches)
{
placeholders.Add(match.Groups["placeHolderId"].Value);
}
}
return placeholders;
}
}
}
Простой вид:
<%@ Page Title="" Language="C#" Inherits="Site.Controllers.MPSViewPage" %>
Good Lu ск.
Смежные вопросы
- 1. Как создать страницу динамического просмотра и файл css в mvc3
- 2. Как использовать Html5 в Mvc2.0
- 3. Как создать специальную страницу просмотра плагина WordPress?
- 4. Как проверить выпадающее меню в asp.net mvc2.0?
- 5. Модели динамического просмотра
- 6. Использование панели динамического просмотра
- 7. Как назначить текст Html.LabelFor в MVC2.0
- 8. Как добавить элементы для динамического просмотра?
- 9. Как создать страницу просмотра динамически в asp.net mvc3
- 10. Как создать пользовательскую страницу предварительного просмотра markItUp в PHP?
- 11. Как мне создать страницу для динамического перемещения элементов на странице?
- 12. Asp.Net MVC как создать страницу просмотра панели мониторинга
- 13. Модели динамического просмотра с проверкой
- 14. Возможно ли создать пользовательскую страницу просмотра продукта в magento
- 15. removeFromSuperView/переключение памяти/динамического просмотра
- 16. Печать динамического шаблона просмотра django
- 17. Передача динамического объекта для просмотра
- 18. Sitecore MVC - место динамического просмотра
- 19. Инструменты для динамического просмотра C++
- 20. Получить позицию динамического просмотра изображения
- 21. Захват HTML для строки в MVC2.0
- 22. Добавление динамического элемента в HTML-страницу
- 23. Ограничить страницу просмотра в MediaWiki
- 24. Добавить другой подзаголовок в ячейку динамического просмотра
- 25. Отображение динамического содержимого в режиме просмотра рельсов?
- 26. Как создать страницу в PHP?
- 27. Как создать границу динамического холста в Silverlight?
- 28. Как создать кнопку динамического массива в Android?
- 29. Как создать индикатор динамического цвета в Android?
- 30. Как создать страницу комментариев?
Куда пойдет содержание этой страницы просмотров? –