如何通过ASP.net(Razor)中的onclick事件更新标签文本?

时间:2017-05-11 12:08:11

标签: c# asp.net asp.net-mvc razor

我想创建一个按钮,以便在'onclick'之后更新标签的文本。我找到了一些使用ASPX实现的解决方案,但我想使用Razor。

//The following is achieved by ASPX

//View
<asp:label id="myLabel" runat="server" />

//Onclick event
myLabel.Text = "my text"; 

如何在ASP.net MVC中使用Razor视图引擎?

3 个答案:

答案 0 :(得分:3)

你来自asp.net webforms背景吗?

您应该使用javascript更新文本。 runat =&#34;服务器&#34;不再存在,不应该根据MVC原则使用。

答案 1 :(得分:1)

您可以在模型中拥有如下属性:

ControllerNameModel
{
   ...
   public string LabelText {get; set;} = "my text"; //my text is the default value
}

然后在您的Controller中,您可以更改标签文本:

public IActionResult ControllerName(ControllerNameModel model)
{
     model.LabelText = "new text for label"
     return View(model); // return the view with modified model
}

在你看来,你应该有这样的标签:

<label for="something">@Model.LabelText</label>

P.S。:将 ControllerName 更改为控制器的相应名称

答案 2 :(得分:0)

您可以使用简单的ViewBag来执行此操作。在控制器中设置值:

public ActionResult Index()
{
    ViewBag.MyCustomTitle = "Title"
    return View();
}

...并在视图中使用它:

<label>@ViewBag.MyCustomTitle</label>