javascript - 基于使用 JavaScript 的 Viewbag 的值在 MVC 表单上显示或隐藏字段
问题描述
我正在尝试隐藏或显示在 Viewbag 中存储的值的 MVC 表单基础上归档。Viewbag 的值是一个数据库返回。我可以在我的 JavaScript 中看到 Viewbag 的值,但是当我运行表单时,隐藏/显示功能不起作用。我错过了什么有人可以帮忙吗
CHTML 代码
<div class="form-group" id="SharedAssetShared" style="display:none">
<div class="form-group">
<div class="row">
<div class="col-md-2">
<label class="control-label ">If yes, what is the Legal basis for sharing? </label>
</div>
<div class="col-md-10">
<input asp-for="LegalBasisforSharing" class="form-control" />
<span asp-validation-for="LegalBasisforSharing" class="text-danger"></span>
</div>
</div>
</div>
Javascript代码
$(document).ready(function () {
divAsset();
});
function divAsset() {
var AssetShared1 = '@ViewBag.AssetShared';
if (AssetShared1 == 'true') {
$("#SharedAssetShared").show();
}
else {
$("#SharedAssetShared").hide();
}
}
存储 Viewbag 值的 C# 代码
public async Task<IActionResult> Edit(int? id)
{
var asset = await _context.VwAllUserAssets.Where(x => x.Id == id).FirstOrDefaultAsync();
ViewBag.AssetShared = asset.AssetShared;
return View(asset);
}
解决方案
您应该更改 viewbag 分配:
ViewBag.AssetShared = asset.AssetShared.ToString();
消除
style="display:none"
在你的 javasctipt 中
if (AssetShared1 == 'True') {
$('#SharedAssetShared').css("display","block");
}
else {
$('#SharedAssetShared').css('display','none');
}
但如果您使用引导程序更好地使用:
if (AssetShared1 == 'True') {
$('#SharedAssetShared').removeClass("d-none");
}
else {
$('#SharedAssetShared').addClass("d-none");
}
推荐阅读
- javascript - x+y轴的d3js条形图:x轴值分布
- mysql - 从表中查找类别数
- python - 将 Erlang 数据解析为 Python 字典
- sharepoint - SharePoint Online 并防止用户在特定时间后编辑旧列表项
- asp.net - 无法定位嵌入式 Razor 布局
- c++ - 在 Doxygen 中记录命名空间
- javascript - 如何将它包装在 setTimeout 中?如果我们假设从服务器接收数据需要时间(这里只是 txt 文件),所以在一段时间后执行它
- c# - 获取 IEnumerable 的属性
(其中 T 是对象) - autodesk-forge - 在 BIM360 OSS 中为对象创建签名 URL
- qt - Qt 5中具有相同字体点大小的不同实际字体大小