У меня есть простой метод контроллера для тестирования:
[HttpGet]
public IActionResult Test()
{
return View("SomeView");
}
Предположим, я хочу создать пакет NuGet, который возвращает представление с именем SomeView
, но это представление может быть реализовано пользователем моего пакета NuGet. Как я могу это сделать? Это возможно?
Вы действительно задаете два отдельных вопроса здесь. Один касается доступа к представлениям, которые не находятся в том же проекте, что и контроллер, и второй вопрос о создании пакета Nuget.
Прочтите этот ответ SO, чтобы узнать, как получить доступ к представлениям в другом проекте.
Как только вы освоитесь с этим, вы можете превратить этот другой проект в пакет Nuget. Существует множество статей, объясняющих, как это сделать. Если у вас есть конкретная проблема с этим, начните новый вопрос здесь.
@Дай А, хорошо замечено. В любом случае, я все еще чувствую, что здесь есть два совершенно разных вопроса, и что есть много информации о том, как решить оба.
Я попробовал решение с помощью AddApplicationPart
, и кажется, что оно не работает. Я создал образцы проектов для тестирования, один из них имеет HomeController
, и это мой пакет nuget. В проекте, где я установил этот пакет nuget, у меня такой запуск: pastebin.com/MKJGCcZ1 и вместо исключения о том, что у меня нет View, я получаю 404 not found. Что я сделал не так?
Извините, проблема была в другом. Это решение с частями приложения работает очень хорошо, но проблема была в том, что я всегда упаковывал свой проект как одну и ту же версию. Это привело к тому, что менеджер пакетов nuget все время использовал старую версию пакета (даже если она уже была удалена и заменена другой), несмотря на то, что пакет был изменен. Спасибо за помощь!
Вопрос, на который вы ссылаетесь, относится к ASP.NET 3/4, который намного старше (и сильно отличается от) ASP.NET Core, поэтому он не поможет OP. Этот более подходящий: stackoverflow.com/questions/62817693/…