C# 对象引用未设置为对象的实例,参数为null

C# 对象引用未设置为对象的实例,参数为null,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,我在将参数从视图传递给控制器时遇到问题 我的视图中有以下代码片段: <a class="btn-simple" onclick="submitDetails('Dashboard', 'Cancel', '<%=Model.Data.Id %>', $('form'));">save</a> 我试图完成的是从视图中的一个按钮返回控制器,该按钮是最初调用视图的方法的“[HttpPost]”版本,请确保您提交的表单包含一个id为的隐藏字段,或者将其作为查询字符串

我在将参数从视图传递给控制器时遇到问题

我的视图中有以下代码片段:

<a class="btn-simple" onclick="submitDetails('Dashboard', 'Cancel', '<%=Model.Data.Id %>', $('form'));">save</a>

我试图完成的是从视图中的一个按钮返回控制器,该按钮是最初调用视图的方法的“[HttpPost]”版本,请确保您提交的表单包含一个id为的隐藏字段,或者将其作为查询字符串参数传递:

<% using (Html.BeginForm("Dashboard", "Cancel", new { id = Model.Data.Id })) { %>
    ...
<% } %>

更新:

如果您希望避免使用
submitDetails
javascript方法,并让您的锚点成为表单的提交按钮:

<% using (Html.BeginForm("Dashboard", "Cancel", new { id = Model.Data.Id })) { %>
    ...

    <button class="btn-simple" type="submit">save</button>
<% } %>

...
拯救

确保您提交的表单包含id为的隐藏字段,或将其作为查询字符串参数传递:

<% using (Html.BeginForm("Dashboard", "Cancel", new { id = Model.Data.Id })) { %>
    ...
<% } %>

更新:

如果您希望避免使用
submitDetails
javascript方法,并让您的锚点成为表单的提交按钮:

<% using (Html.BeginForm("Dashboard", "Cancel", new { id = Model.Data.Id })) { %>
    ...

    <button class="btn-simple" type="submit">save</button>
<% } %>

...
拯救


请发布
submitDetails()
code.
submitDetails
做什么?因为您刚刚将id作为字符串传递回来。字符串所知道的内容与模型所知道的不同。在本例中,它将id作为url字符串的一部分进行查找,即controller/view/id。您必须从模型中传递id。我对这一点非常陌生,因此我可能根本没有做我想做的事情。当我按下“保存”按钮时,我只想进入[HttpPost]版本的Cancel()。
-你确定
模型。数据
不是空的吗?请发布
提交的详细信息()
代码。
提交的详细信息
有什么作用?因为你刚刚将id作为字符串传递回来。字符串所知道的内容与模型所知道的不同。在本例中,它将id作为url字符串的一部分进行查找,即controller/view/id。您必须从模型中传递id。我对这一点非常陌生,因此我可能根本没有做我想做的事情。当我按下“保存”按钮时,我只想进入[HttpPost]版本的Cancel()-你确定
Model.Data
不是空的吗?如果是空的,我想避免使用提交的详细信息possible@user1229309,在这种情况下,您可以将此锚定作为表单的提交按钮。我已经用一个例子更新了我的答案。然后,您可以按照DD的建议添加一个隐藏字段,其值为model.data.id,并在表单集合中获取该字段@user1229309,表单的action属性是什么样子的?它包含id吗?例如
action=“/Dashboard/Cancel/123”
?@DarinDimitrov我不知道你所说的action属性是什么意思。如果是这样的话,我想避免使用submitDetailspossible@user1229309,在这种情况下,您可以将此锚定作为表单的提交按钮。我已经用一个例子更新了我的答案。然后,您可以按照DD的建议添加一个隐藏字段,其值为model.data.id,并在表单集合中获取该字段@user1229309,表单的action属性是什么样子的?它包含id吗?例如
action=“/Dashboard/Cancel/123”
?@DarinDimitrov我不知道你所说的action属性是什么意思
function submitDetails(url, form) {
    form.ajaxSubmit({ url: url, target: '#itemdetails' });
}
<% using (Html.BeginForm("Dashboard", "Cancel", new { id = Model.Data.Id })) { %>
    ...

    <button class="btn-simple" type="submit">save</button>
<% } %>