【发布时间】:2019-12-04 18:45:58
【问题描述】:
我尝试将 HTML 表格行中的选定模型直接传递给 javascript 函数,包括转换为 JSON。由于以下问题,转换失败。
此外,我吓坏了 6 个多小时,试图了解它为什么不起作用。现在我知道是什么导致了问题,不知道如何解决它。
这是我尝试过的(简单易行):
<table class="table table-hover">
<thead align="center">
<tr>
<th scope="col">AssetID</th>
<th scope="col">Loaction</th>
<th scope="col">AreaIn</th>
<th scope="col">Rooms</th>
<th scope="col">ImageURL</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody align="center">
@foreach (var a in @Model.OwnAssetsList)
{
String[] assetArray = new String[8] { a.AssetID.ToString(), a.OwnerID.ToString(), a.OwnerPublicKey.ToString(), a.Loaction.ToString(), a.AreaIn.ToString(), a.Rooms.ToString(), a.ImageURL.ToString(), a.Price.ToString() };
<tr>
<td>@a.AssetID</td>
<td>@a.Loaction</td>
<td>@a.AreaIn</td>
<td>@a.Rooms</td>
<td><a target="_blank" href=@a.ImageURL>Click</a></td>
<td><button class="btn btn-primary" data-toggle="modal" data-target="#exampleModalLong" onclick="offerContract(@a.Loaction/* or @a.ImageURL*/)">Offer Contract</button></td>
</tr>
}
</tbody>
在 Javascript 中:
@section scripts
{
<script type="text/javascript">
function offerContract(param)
{
document.getElementById("dialogAssetID").innerHTML = "Asset No:".bold()+param.AssetID;
document.getElementById("dialogOwnerAddress").innerHTML="Your Public Key:" +param.OwnerID;
}
</script>
}
当且仅当我传递@a.Loaction 或@a.ImageURL 时,javascript 函数才会失败。 这是控制台中的错误:'Uncaught SyntaxError: missing ) after argument list'。
模型的其余属性成功通过。 '@a.Loaction' 和 '@a.ImageURL' 在 HTML 表中工作正常 我现在添加模型和表格方案:
public class Asset
{
[Key]
public int AssetID { get; set; }
[Required]
public int OwnerID { get; set; }
[Required]
public string OwnerPublicKey { get; set; }
[Required]
public string Loaction { get; set; }
[Required]
public int AreaIn { get; set; }
[Required]
public int Rooms { get; set; }
[Required]
public string ImageURL { get; set; }
[Required]
public double Price { get; set; }
}
我将不胜感激。在这个问题上花费了超过 6 个小时。
【问题讨论】:
标签: javascript sql-server entity-framework razor nvarchar