从Javascript更新Razor LabelFor()

时间:2019-05-20 06:11:59

标签: javascript jquery asp.net razor model-view-controller

我正在将ASP.NET MVC与Razor一起使用。我有一个AJAX函数,当您输入邮政编码时,它可以获取城市和州。然后,我用城市/城市更新一个列表框,并用州更新一个LabelFor,如图所示:

image1

JSON函数:

image2

剃刀代码:

@Html.DropDownListFor(model => model.City, new SelectList(Enumerable.Empty<SelectListItem>()), "Select City", new { @class = "drop-down-list", id = "city_drop_down_id", style = "font-size:100%;" })
@Html.LabelFor(model => model.State, new { id="state_label_id", style = "font-size:100%; font-weight:normal; color:black;" }) 

一旦Ajax函数检索到数据,则Java脚本会成功更新控件。 现在,如果单击“下一步”按钮,将创建一个表单发布,并且应该将控件中的值放入控制器中。问题是,我要从下拉列表中获取城市,而不是州:

image3

整个图像不清楚,所以下面是一个特写:

image4

我使用DisplayFor而不是LabelFor,但仍然无法正常工作。我什至在javascript中使用了.html(),而不是.text(),但还是没有运气:

$("#state_label_id").html(this.State);

((请忽略用户名,密码,电子邮件地址,因为我没有向其传递任何值,因此应该为空)

1 个答案:

答案 0 :(得分:0)

谢谢@AmirNorouzpour,这很有效。这就是我所做的:

Razor Code:
-----------
@Html.HiddenFor(model => model.State, new { id = "state_label_id_hidden" }) 

JQuery:
------
$("#state_label_id_hidden").val(this.State);