簡體   English   中英

未將對象引用設置為對象的實例,參數為null

[英]Object reference not set to an instance of an object, parameter is null

我在將參數從視圖傳遞給控制器​​時遇到問題

我認為這段代碼片段:

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

這是從我的控制器來的:

[HttpPost]
public ActionResult Cancel(string id, FormCollection collection)
{
       var appt = Application.Session.GetObjectFromOid<Appointment>(new ObjectId(id));
}

我收到一個錯誤消息,說“ id”為空,但是當我在視圖中測試Model.Data.Id時,它不為空。

這是我的submitDetails函數:

function submitDetails(controller, method, id, form) {
    form.ajaxSubmit({ target: '#itemdetails' });

}

我要完成的工作是從視圖中的按鈕返回到控制器,該按鈕最初是調用該視圖的方法的“ [HttpPost]”版本

確保您提交的表單包含帶有ID的隱藏字段,或者將其作為查詢字符串參數傳遞:

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

或者,如果您想傳遞動態網址,則可以執行以下操作:

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

接着:

function submitDetails(url, form) {
    form.ajaxSubmit({ url: url, target: '#itemdetails' });
}

更新:

並且,如果您想避免使用submitDetails javascript方法,而將錨作為表單的“提交”按鈕:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM