<viewdata model="Message" message="Message" />
<var msg="message ?? Model" />
Затем используйте переменную msg вместо сообщения (например, ${msg.Subject} и т.д.).
Вам также может повезти с добавлением single
<default message="Model" />
но первый способ, как мне кажется, сработает.
попытаться вызвать партиал с подчеркиванием и анонимным объектом.
ViewData["message"] = message;
return PartialView("_MessageItem");
Когда вы передаете параметры PartialView
, spark ничего не знает об имени параметра, только значение, которое было передано. Поэтому он использует имя аргумента, которым, как я полагаю, является model. Поскольку ваш код ищет параметр message, он выдает ошибку. Я думаю, что одним из решений может быть переход на что-то вроде этого:
model может быть приведена к Model, вам придется догадаться и проверить.
проблема в том, что когда вы вызываете его из действия, вы передаете данные как модель, но при вызове из другого представления вы передаете данные как параметр. вы можете использовать свои данные в качестве модели только в том случае, если другое представление также использует тот же тип объекта Model.
в противном случае я бы передал его в ViewData в вашем действии:
public ActionResult GetMessage(Message message)
{
ViewData["message"] = message;
return PartialView("MessageItem");
}