Я наконец смог решить ее, обновив версию ruby до 2.4.4
и добавив export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
. Я предполагаю, что проблема с Комбинацией OSX Mojave
и ruby-2.4.0
и фактически работает для OSX High Sierra
Используйте пользовательский основной контроллер и наследуйтесь ему вместо этого:
Public Class CustomBaseController
Inherits System.Web.Mvc.Controller
Protected Overrides Function View(ByVal viewName As String, ByVal masterName As String, ByVal model As Object) As System.Web.Mvc.ViewResult
Return MyBase.View(viewName, Session("MasterPage"), model)
End Function
End Class
Я установил свою Переменную сеанса в global.asax Session_Start:
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
//programming to figure out your session
Session("MasterPage")="MyMasterPage"
End Sub
Почему бы не сохранять Ведущее устройство Page на профиле пользователя? Затем просто измените его на событии PreLoad.
Вы могли бросить основное название страницы в сессию, но сессии ненадежны. я рекомендовал бы бросить его в дб вместо этого.
после того как Вы находитесь на странице, можно измениться/установить основную страницу путем доступа page.masterpagefile., это - строка; просто передайте имя .master в.