在我的控制器中,返回View的方法也会为某些类级属性初始化一些值:
private string igc = String.Empty;
private string igcCode = String.Empty;
private bool isSuggested = false;
public ActionResult Codes(Codes objCodes)
{
try
{
FillDropDowns(objCodes);
igc = String.Empty;
if (objICDCodes.FromWhere.IndexOf("MedicalInfo-Suggested") >= 0)
{
igc = objCodes.FromWhere.Remove(0, "MedicalInfo-Suggested-".Length);
igcCode = igc.Substring(0, igc.IndexOf("-")).Trim();
objCodes.ICGCode = igcCode;
isSuggested = true;
}
}
catch (Exception ex)
{
//logging error
ElmahLogUtility.ErrorException(ex);
}
return View(base.GetViewPath("Codes"), objCodes);
}
此外,还有一种方法可以调用将数据绑定到页面上的网格:
public JsonResult GetSelectedCodesInfo(List<SearchField> searchFields, GridDataSourceRequest request)
{
//creating the instance of DataSourceResult.
DataSourceResult dataSourceResult = null;
try
{
// Creating the instance of CommonBLL to load the values.
CommonBLL objCommonBLL = new CommonBLL();
if (isSuggested)
{
searchFields.Add(new SearchField() { ElementName = "aIGCode", Value = igcCode });
searchFields.Add(new SearchField() { ElementName = "aFor", Value = "EtiologicDiagnosis" });
}
// Getting the Codes information and storing in the DataSource Result.
dataSourceResult = objCommonBLL.GetSelectedCodesInfo(searchFields, request);
}
catch (Exception ex)
{
//Logging the Exception
ElmahLogUtility.ErrorException(ex);
}
// Returning the Result.
return Json(dataSourceResult, JsonRequestBehavior.AllowGet);
}
创建视图时, isSuggested
设置为true
,但当数据绑定到网格isSuggested
由于某种原因设置为false
时。
我的网格在Razor视图中定义如下:
@Html.Grid("CodesSelectionGrid").ReadSource("Controller", "GetSelectedCodesInfo").OnGridDataBound("AssignCodeValues").Lazyload(true).EnableGrouping(false).EnableSorting(true).PageSize(10).Height("390px").Width("610px").EnablePaging(true).EnableFiltering(false).EnableMultiSelect(true).SelectionMode(SelectionMode.Single, "GetSelectedCodeDetails").RowSelection(GridRowSelection.None).ShowToolBar(true).SelectionCSSClass("icd-editable-cell").PageButtonCount(3)
.ReadSource("Controller", "GetSelectedCodesInfo")
位是指控制器和控制器上要调用的方法。所以,它正在调用上面的第二段代码。
我必须访问我的Controller
类的两个单独的实例,但我不知道如何解决这个问题。我怎样才能做到这一点?我怎么能让我的网格传递Codes
对象的引用?然后我可以从网格中获取值......
答案 0 :(得分:1)
这是预期的行为。 isSuggested
是一个类级变量。每次发出Http请求时,都会创建一个新的控制器实例。这意味着变量将初始化为false。请记住, Http是无状态的:)
如果要在多个http调用之间保留变量值,则需要保留它。你有不同的选择,如