[英]What is the correct syntax for appending HTML with JS function?
In my Entity Framework .NET MVC app I want to append a new row to a table with JS but I want to be able to do data validation.在我的实体框架 .NET MVC 应用程序中,我想 append 在带有 JS 的表中添加一个新行,但我希望能够进行数据验证。 Therefore I need to use Html.EditorFor .
因此我需要使用Html.EditorFor 。
This is the current JS code:这是当前的 JS 代码:
$("#add_btn").on('click', function (e) {
var table = $("#element_table");
var idx = $(table).find("tbody>tr").length;
var htmlToAppend = `<tr>
<td><input name="item.Elements[${idx}].Name" id="Elements[${idx}].Name" /></td>
<td><input name="item.Elements[${idx}].Quantity" id="Elements[${idx}].Quantity" /></td>
</tr>`;
$("#element_table").append(htmlToAppend);
});
I want to have something like this:我想要这样的东西:
var htmlToAppend = `<tr>
<td> @Html.EditFor(model => model.Elements[${idx}].Name </td>
<td> @Html.EditFor(model => model.Elements[${idx}].Quantity</td>
</tr>`
But I can't find the correct syntax.但我找不到正确的语法。
you can't use razor without render view.你不能在没有渲染视图的情况下使用 razor。
best way for this problem you can use html code.解决此问题的最佳方法是使用 html 代码。 example:
例子:
$('tr#id td:first').append($('<input type="text" id="textfield" name="fieldName" value="your value" />'));
or try it:或尝试一下:
pass your item of model to an action with ajax request and create an action then return a partial view:将您的 model 项目传递给具有 ajax 请求的操作并创建一个操作,然后返回部分视图:
public ActionResult yourAction(Model model)
{
return PartialView(model);
}
and insert your razor code in this view:并在此视图中插入您的 razor 代码:
@Html.EditFor(model => model.Elements[${idx}].Name
@Html.EditFor(model => model.Elements[${idx}].Quantity
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.