我有一个MVC剃刀视图,部分视图。在主视图中单击按钮后,我必须触发控制器操作。我需要将label
值传递给此操作。所以我想我可以在填充所有HTML后使用jQuery获取标签值。这个label
处于局部视图中,我的脚本位于主视图中。即使在页面完全加载后,我仍然在警报中获得空值。这是我使用的代码:
<input type="button" class="ViewInfo-success" value="View History" onclick="return HistoryResponse()" />
function HistoryResponse() {
var mac = $('#cmmac').html();
alert("alert1" + mac);
try {
location.replace('/HistoryLookup/GetHistory' + mac);
}
});
部分视图中的标签代码:
<div class="col-lg-2">
@Html.Label("MAC Seria:", new { id = "cmmac" })
</div>
<div class="col-lg-2">
@Html.DisplayFor(x => x.HistoryDO.MACSerial)
</div>
还有其他方法可以达到这个目的吗?请输入任何想法。
答案 0 :(得分:0)
以下对我有用:
点击前(编辑):
点击(修改):
发布点击网址(编辑):
查看(索引):
<input type="button" class="ViewInfo-success" value="View History" onclick="HistoryResponse()" />
@Html.Partial("MACSerialPartial")
<script>
function HistoryResponse() {
var mac = document.getElementById('cmmac').innerText;
alert("alert1" + mac);
location.replace('/HistoryLookup/GetHistory?id=' + mac);
};
</script>
带编辑的部分视图(MACSerialPartial):
@model mvc_read_label_value.Models.Product
<div class="col-lg-2">
<p>MAC Serial:</p>
</div>
<div class="col-lg-2">
<p id="cmmac">@Model.HistoryDO.MACSerial</p>
</div>
<强>型号:强>
public class Product
{
public History HistoryDO { get; set; }
}
public class History
{
public string MACSerial { get; set; }
}
带索引操作方法的控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
Product product = new Product() {HistoryDO = new History(){MACSerial = "TestSerial"} };
return View(product);
}
}
HistoryLookup Controller:
public class HistoryLookupController : Controller
{
public ActionResult GetHistory(string id)
{
return View(); // TODO: need to make a view corresponding to this action
}
}
答案 1 :(得分:0)
所以我所要做的就是将模型中的macid值存储在这样的隐藏字段中。
@Html.HiddenFor(x => x.Model.historyDO.MACSerial, new { id = "macId", name = "macId" })
主视图上的按钮
<input type="button" class="ViewInfo btn btn-success" value="View History" onclick="return HistoryResponse()" />
在historyresponse()方法中,通过隐藏字段ID获取值
function HistoryResponse() {
var params = '?MacId=' + $("#macId").val();
alert("alert3" + params); [![enter image description here][1]][1]
try {
location.replace('/HistoryLookup/GetHistory' + params);
}
catch (exception) { }
}
并发布行动。
[HttpGet]
public ActionResult GetHistory(string macId)
{
var model = Repository.GetHistory(macId);
return View("HistoryLookupResponse", model);
}