2013-05-13 2 views
-1

Я нахожусь в команде, создающей большое приложение ASP.NET MVC. Я хотел бы иметь место, которое показывает строку «Not yet Implemented», когда выбрана опция меню, которая еще не была реализована командой. Я начал с возврата this.Content("Not yet Implemented");, но этот метод не отображает макет, содержащий меню, поэтому тестеры приводятся в тупик. Есть ли способ визуализации этой строки внутри макета без создания представления? Я не хочу создавать представление, которое просто будет удалено, когда проект будет завершен.Как визуализировать строку в виде MVC?

EDIT: Извините, если я неясен здесь, но цель состоит в том, чтобы отобразить произвольную строку в виде представления. Предложить создать файл .cshtml не отвечает на мой вопрос. Я собираюсь решить свою проблему, реализовав обработку ошибок и выбросив исключение (что в любом случае кажется более «правильным»). Я все равно оставляю вопрос, потому что мне любопытно, что то, что я изначально хотел сделать, даже возможно.

+1

Что случилось с страницы ошибки и 'певд NotImplementedException()'? – CodeCaster

+1

Вы используете общий вид в общей папке. – swapneel

ответ

2

Обычно вы можете использовать:

return Content("Not yet Implemented"); 

... Но вы можете добавить Просмотреть в Shared, и вместо возвращения Content("XXX") вы звоните возвращение View("Shared/NotImplementedView");

Аналогично предыдущему, если ваши действия есть (так как он будет вызываться), вы также можете добавить «Просмотр», но на данный момент поместите «<h3>Not yet implemented</h3>» в качестве своего содержимого. После внедрения вы можете просто заменить его содержимое. Таким образом, вам не нужно указать имя вида, просто сделать return View(); (Если точка зрения имеет такое же имя, как и действие)

+0

Я сделал это в других местах, но из-за характера того, как этот раздел приложения объединяется (не стоит вдаваться в уверяю вас), он здесь не сработает. – Mykroft

+0

Итак, возможно, вам нужно объяснить что-то еще, чтобы помочь вам с лучшим вариантом. – Romias

+0

Как я уже сказал в своем EDIT выше, мне любопытно, можно ли отобразить произвольную строку в виде представления. Если это невозможно, это нормально, но я хотел бы знать окончательно. – Mykroft

0

Или вы могли бы сделать:

string notImplementedYet = "Not implemented yet."; 
return View((object)notImplementedYet); 

Сродни, что я вспомнил по Дарин Димитров другой день:

MVC 4 Action Result er

лично я бы бросить NotImplementedException или что-то более изящное, чем возвращение строки в качестве модели, хотя, но если на странице удерживающей в то время как в развитии, я предполагаю, строка в порядке.

-1

Я не уверен, что это подходит для того, что вы пытаетесь сделать, поскольку все, что вам нужно, это показать ошибку на странице, но вот функция, которая позволит вам отображать любое бритвенное представление в виде строки :

public string RenderRazorViewToString(string viewName, object model = null) 
{ 
    ViewData.Model = model; 
    using (sw == new System.IO.StringWriter()) 
    { 
    dynamic viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName); 
dynamic viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw); 
viewResult.View.Render(viewContext, sw); 
return sw.GetStringBuilder().ToString(); 
    } 
} 

Это позволит вам получить любой вид бритвы в виде строки, а затем вы можете сделать все, что вы хотите с ним. Что действительно круто об этом, так это то, что вы тоже можете пройти в модели ...

+0

Но это просто противоположность того, что он хочет. – SoonDead

0

Вы можете просто использовать ViewBag для этого. В вашей стороне сервера, выполните следующие действия:

ViewBag.MyString = "hello world"; 
return View(); 

И в разметке:

@ViewBag.MyString 
Смежные вопросы