![](/img/trans.png)
[英]How to assign c# guid value to javascript variable using razor viewmodel in asp.net mvc?
[英]How to assign C# variable to CSS class variable in ASP.NET MVC ActionLink
在下面的ActionLink代碼中,如何在ASP.NET MVC 5的視圖中將C#字符串變量分配給@class
?
@Html.ActionLink("Manage List", "Index", new { @class = "DynamicClassName" });
我想用動態的東西替換靜態字符串@class = "DynamicClassName"
,類似於@class = @myChangingColorClass
// Error
// yes, myChangingColorClass is declared C# valid string
@Html.ActionLink("Manage List", "Index", new { @class = @myChangingColorClass });
您需要在myChangingColorClass
的代碼塊中聲明myChangingColorClass
,如下所示
@{
string myChangingColorClass = "myClass";
}
您可以嘗試在Model或ViewModel類中放入一個字符串變量(屬性),然后從代碼隱藏中進行設置,並在視圖中使用它,如下所示:
@Html.ActionLink("Manage List", "Index", new { @class = @Model.myChangingColorClass});
這可以通過兩種方式完成:一種是通過在ViewModel類中設置值,或者通過在ViewBag,ViewData或TempData中設置值。
方式1)首選方式強類型化:將CSS類名稱設置為viewmodel類屬性:
Class Student
{
public ID BIGINT {get; set;}
... //other properties
}
Class StudentViewModel : Student
{
public CssClass string {get; set;}
}
//控制器動作
public ActionResult Index(){
StudentViewModel objModel;
//initialize model
objModel.CssClass = "myCssClass"; //set css class name to viewmodel
return View(objModel);
}
//在視圖中使用如下代碼:
@model namespace.StudentViewModel;
@Html.ActionLink("Manage List", "Index", new { @class = Model.CssClass })
方式2)將CSS類名稱設置為viewbag / viewdata / tempdate。 但這不是首選。
//控制器動作
public ActionResult Index(){
ViewBag.CssClass = "myCssClass"; //set css class name to ViewBag
//or
ViewData["CssClass"] = "myCssClass"; //set css class name to ViewData
//or
TempData["CssClass"] = "myCssClass"; //set css class name to TempData
return View();
}
//在視圖中使用如下代碼:
@Html.ActionLink("Manage List", "Index", new { @class = @ViewBag.CssClass })
//Or
@Html.ActionLink("Manage List", "Index", new { @class = @Convert.toString(ViewData["CssClass"]) })
//Or
@Html.ActionLink("Manage List", "Index", new { @class = @Convert.toString(TempData["CssClass"]) })
請讓我知道,這對您有用嗎?
@{
string myChangingColorClass = "myClass";
}
@Html.ActionLink("Manage List", "Index", null, new { @class = @myChangingColorClass });
它會產生
<a class="myClass" href="/ControllerName">Manage List</a>
但是用這個
@Html.ActionLink("Manage List", "Index", new { @class = @myChangingColorClass });
它會產生
<a href="/ControllerName?class=myClass">Manage List</a>
它假設它像該方法的參數..您不想要..
在new { @class = @myChangingColorClass }
之前添加null
將解決此問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.