在JavaScript中增加Razor变量是行不通的

本文关键字:行不通 变量 Razor JavaScript 增加 | 更新日期: 2023-09-27 17:51:15

我试着做一个分配页面,如果你想添加额外的人,你必须点击"再添加一个"按钮。我有一个count变量,当我第一次点击按钮并调用函数时,事情运行得很好,但是当我第二次点击按钮时,我意识到之前的计数增量没有得到反映。我应该如何使增量永久或任何其他解决方案使用,我可以实现这一点。

@{
    int count = 1;
}
<script>
function AddNewDoc(ElementId) {
//This Increment is not reflected when the function is called again
@{
count++;
}
document.getElementById(ElementId).innerHTML = "<td>A</td>" + "<td>B</td>" + "    <td>C</td>" + "<td><input type='"button'" value='"Add One More Doctor'"      onclick='"AddNewDoc(@count)'" /></td></tr>" + "<tr id='"@count'">";
 }
</script>
@Html.ActionLink("GO BACK TO OPD POSTING", "UnitAndMonth", "OPD")
    <br />
    <br />
    <h2>@ViewBag.msg</h2>
    @using (Html.BeginForm("HandleForm", "OPD", FormMethod.Post))
    {  <table>
    <tr>
        <td>
            @Html.TextBoxFor(x => x[count].dr_name, new { @class = "input1", @id = "tags" })
        </td>
        <td>
            @Html.TextBoxFor(x => x[count].from_date, new { @class = "input1", @id = "datepicker" + count, @readonly = "readonly" })
        </td>
        <td>
            @Html.TextBoxFor(x => x[count].to_date, new { @class = "input1", @id = "datepicker" + count + count, @readonly = "readonly" })
        </td>
        <td>
            <input type="button" value="Add One More Doctor" onclick="AddNewDoc(@count)" />
        </td>
    </tr>
      <tr id="@count"></tr>
    </table>
        <input type="submit" value="Submit" />
    }

在JavaScript中增加Razor变量是行不通的

我想你在上面的代码中计数永远是2。您还应该重新考虑

    <tr id="count"></tr>

因为id应该比一个整数更有描述性

试着去掉所有的@count,比如:

    <script>
    var count = 1;
    function AddNewDoc(ElementId) {
            count = count+1;
            document.getElementById(ElementId).innerHTML = "<td>A</td>" + "<td>B</td>" + "    <td>C</td>" + "<td><input         type='"button'" value='"Add One More Doctor'"      onclick='"AddNewDoc(count)'" /></td></tr>" + "<tr id='"count'">";
     }
     </script>
     <input type="button" value="Add One More Doctor" onclick="AddNewDoc(count)" />