Так что моя проблема вращается вокруг вызова apphost.ResolveService описано ниже URL: Calling a ServiceStack service from RazorServiceStack ResolveService
Я в моем _Layout.cshtml
И, очевидно, следующий код работает отлично, но как это было предложено в ответ в приведенном выше URL это своего рода глупо
SMSGateway.Services.EntityCollectionResponse response =
new ServiceStack.ServiceClient.Web.JsonServiceClient(
"http://localhost:1337/")
.Get<SMSGateway.Services.EntityCollectionResponse>(
"/entities");
так что это дает мне список лиц :) Но не оптимален ... так вот моя попытка сделать это в правильном пути
var response = ConsoleAppHost.Instance
.ResolveService<SMSGateway.Services.EntityService>(
HttpContext.Current).Get(
new SMSGateway.Services.EntitiesRequest());
// SMSGateway.Services.EntityCollectionResponse response =
// base.Get<SMSGateway.Services.EntityService>().Get(
// new SMSGateway.Services.EntitiesRequest());
foreach (var entity in response.Result)
{
<li>
<a href="@entity.MetaLink.Href">
@Html.TitleCase(entity.Name) entities
</a>
</li>
}
Хорошо, так что ошибка, я получаю следующее: CS0122
ошибка: ConsoleAppHost недоступен из-за его уровня защиты ....
это ожидается ли? Я размышлял, не было ли случая, когда мне не позволено называть это в файле _Layout.cshtml?
Далее чтение привел меня к статье InternalVisibleTo Testing Internal Methods in .NET 2.0
, который я нашел очень интересно: P Но не сигару :)
Я ищу что-то, что позволит мне использует другой «RenderBody» .... Потому что в _layout.cshtml Кажется, я не могу получить информацию/модель с моих сервисов, если я не позвоню «RenderBody», и это само по себе позволяет использовать только одну модель для каждого представления ... так как я могу дать разные модели для моего макета? Именно по этой причине я решил использовать JSONClient в Razor .... –