从html Razor页面执行C#方法

时间:2018-01-10 12:18:05

标签: javascript c# asp.net-mvc razor

我正在开发一个基于本教程的简单.NET Core Razer项目: https://docs.microsoft.com/en-us/aspnet/core/data/

我创建了2个与一对多关系相关的模型,就像标题细节一样。我得到了标题,点击后查看了它的所有细节。我希望每个细节行都有一个按钮,按顺序将它按1或1向下。我在Index.cshtml.cs中创建了一个方法,但是现在我需要从Index.cshtml运行这个方法。我试过这样的事情:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    function RuleStepMoveUp() {

        var RSO = '@Model.RuleStepMoveUp()';
        alert(RSO);
    }

</script>

并且有一个按钮来执行它:

<td>
      <input type="button" onclick="RuleStepMoveUp()" value="Get Message" />
      <p></p>
</td>

每个细节,但它不起作用。每次加载页面时都会执行RuleStepMoveUp()方法,并且页面因错误而失败:

  

NullReferenceException:未将对象引用设置为的实例   宾语。   WZI_Konfigurator.Pages.Rules.Index_Page + d__15.MoveNext()   在Index.cshtml中   +   28. @foreach(Model.Rule.Rules中的var项目)

@foreach (var item in Model.Rule.Rules)
        {
            string selectedRow = "";
            if (item.RuleID == Model.ID)
            {
                selectedRow = "success";

            }
            <tr class="@selectedRow">
                <td>
                    @Html.DisplayFor(modelItem => item.RuleName)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Stage)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.ResultColumn)
                </td>
                <td>
                    <a asp-page="./Index" asp-route-id="@item.RuleID">Select</a> |
                    <a asp-page="./Edit" asp-route-id="@item.RuleID">Edit</a> |
                    <a asp-page="./Details" asp-route-id="@item.RuleID">Details</a> |
                    <a asp-page="./Delete" asp-route-id="@item.RuleID">Delete</a>
                </td>
            </tr>

        }

即使在JS脚本不存在时加载也很好。

现在C#方法对一个硬编码的详细实体进行更新,以确保它正常工作。将来我会在RuleStepMoveUp方法中传递detailID,这就是没有参数的原因。

That's how the page looks after I deleted the JS function

那么,我应该如何处理这个问题,只有当&#34; Get Message&#34;单击按钮?此外,是否有一种非常流畅的方法来更新规则步骤的表而不刷新页面?

0 个答案:

没有答案