Reputation:
I would like to pass Variables into an HTML screen and place on the screen. Currently using Net Core.
This question is only for regular .Net and does not seem to work. Pass Html String from Controller to View ASP.Net MVC
Test Controller:
_cardtitle = "Green Tree Title";
_cardtext = "Oak tree with leaves";
_imageurl = "https://images.unsplash.com/reserve/bOvf94dPRxWu0u3QsPjF_tree.jpg?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60"
public IActionResult Test(string _cardtitle, string _cardtext)
{
ViewBag.CardTitle = _cardtitle;
ViewBag.CardText = _cardtext;
ViewBag.ImageURL= _imageurl;
ViewBag.Cardstring = @"<div class=""card"" style=""width: 18rem;"" >
<img class=""card -img-top"" src =""https://images.unsplash.com/reserve/bOvf94dPRxWu0u3QsPjF_tree.jpg?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60"" alt =""Card image cap"" >
<div class=""card -body"" >
<h5 class=""card -title"" > @ViewBag.CardTitle</h5>
<p class=""card -text"">@ViewBag.CardText</p>
</div>
</div>";
return View();
}
Test.cshtml
@Html.Raw(ViewBag.Cardstring)
Right now I only see @ Ampersand Variables,
Upvotes: 0
Views: 2814
Reputation: 392
You are displaying your ViewBag wrong.
Change Html.Raw(ViewBag.Cardtest)
to Html.Raw(ViewBag.Cardstring)
EDIT:
According to my comments this should work for you. You need to pass @ViewBag.CardTitle
and @ViewBag.CardText
as properties not as part of string.
ViewBag.Cardstring = "<div class=\"card\" style=\"width: 180rem;\"><img class=\"card -img-top\" src =\"https://images.unsplash.com/reserve/bOvf94dPRxWu0u3QsPjF_tree.jpg?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60\" alt =\"Card image cap\"><div class=\"card -body\" ><h5 class=\"card -title\" >" + @ViewBag.CardTitle +"</h5><p class=\"card -text\">" + @ViewBag.CardText + "</p></div></div>";
Upvotes: 1