我在我的mvc頁面上有局部視圖。該視圖默認情況下呈現無數據,但會根據頁面另一部分中的組合框中的值選擇進行更新。部分視圖將id用作參數,用於獲取返回模型所需的數據。Ext.Net MVC - 使用參數渲染局部視圖
我遇到的問題是,在初始加載時,參數爲空,因爲沒有選擇任何東西,我得到一個空值異常。 有沒有一種方法可以在直接事件調用中使用if語句來檢查所選項目並返回0是否爲空?
查看下面的示例代碼以進行說明。
感謝
這裏是我的主網頁(index.cshtml)的相關部分 -
x.ComboBox()
.ID("MyCombo")
.DisplayField("Title")
.ValueField("Number")
.TypeAhead(false)
.Width(500)
.PageSize(10)
.HideBaseTrigger(true)
.MinChars(0)
.TriggerAction(TriggerAction.Query)
.DirectEvents(de =>
{
de.Select.Url = Url.Action("MyPartial");
@* Can I use an if statment here to check the selected item's value? *@
de.Select.ExtraParams.Add(new { id = App.MyCombo.getValue() });
})
.ListConfig(Html.X().BoundList()
.LoadingText("Searching...")
.ItemTpl(Html.X().XTemplate()
.Html(@<text>
<div class="search-item">
<h3><span>{Number}</span>{Title}</h3>
{Description}
</div>
</text>)
)
)
........
@Html.Partial("MyPartial", Model.MyPartialVM)
這裏是我的控制器代碼 -
public ActionResult MyPartial(string id)
{
var vm = new MyPartialViewModel
{
Number = id,
Title = "New Title"
};
ViewData.Model = vm;
var pvr = new Ext.Net.MVC.PartialViewResult
{
ViewData = this.ViewData
};
return pvr;
}
這個作品,如果我硬編碼一個參數值,但如果我現在嘗試它,則不會。這裏是我的錯誤 -
消息=無法執行運行時對空引用
所以我在想,我可以在格蘭DirectEvents一塊,如果做一個檢查空在組合框中選擇綁定,我可以在必要時注入0,並在控制器中處理。這可以做到嗎?
沒有任何理由不使用'動@ Html.Action'代替'@ Html.Partial'? '@ Html.Partial'用於直接引用視圖而無需執行任何操作。 – tweray
沒有理由 - 我可以改變它。但是,我仍然遇到同樣的問題。 – czuroski
抱歉,我對您要求的內容感到困惑。我想現在我明白了。看看[這個](http://stackoverflow.com/questions/21043153/ext-net-accessing-combobox-value-at-server-directevent)可以幫助你 – tweray