Я новичок в mvc, и я хочу построить новую систему, я сделал экран входа в систему и сохраняю информацию для входа в систему в параметре Session, затем перенаправляю в другое окно,
, когда я использую оператор SELECT без сравнения значение сеанса работает без ошибок, и это код контроллера:
public ActionResult Index()
{
string sql= @"SELECT PATIENT_NO , LAB_ORDER_NO , PATIENT_NAME_A , SERV_REQUEST_DATE_G ,
SERV_REQUEST_DOCTOR_NAME
FROM LAB_ORDERS_STS where PATIENT_NO=10 ";
DataTable dt = func.fireDatatable(string.Format(sql));
return View(dt);
}
, но когда я использую сеанс и получаю данные в зависимости от сеанса ["MRN"], я получаю ошибку "Ссылка на объект не установлена на экземпляр объекта "и это код:
public ActionResult Index()
{
string sql= @"SELECT PATIENT_NO , LAB_ORDER_NO , PATIENT_NAME_A , SERV_REQUEST_DATE_G ,
SERV_REQUEST_DOCTOR_NAME
FROM LAB_ORDERS_STS where 1=1 ";
string condition = "";
string orderby = "LAB_ORDERS_STS.LAB_ORDER_NO desc";
condition += " and LAB_ORDERS_STS.PATIENT_NO ='" + Session["MRN"] + "'";
DataTable dt = func.fireDatatable(string.Format(sql+condition+orderby));
return View(dt);
}
Это также код контроллера входа в систему:
[HttpPost]
public ActionResult Authorise(kaashtaif.Models.WEBSITE_USERS usermodel)
{
using (Entities db = new Entities())
{
var userdetails = db.WEBSITE_USERS.Where(x => x.ID_NO == usermodel.ID_NO && x.MOBILE == usermodel.MOBILE && x.PATIENT_NO == usermodel.PATIENT_NO).FirstOrDefault();
if (userdetails == null)
{
usermodel.LoginErrorMessage = "Entered Data Not Exist Please Update your Data - البيانات المدخلة غير صحيحة ارجو تحديث بيانات الملف الطبي";
return View("Login", usermodel);
}
else
{
Session["IDNO"] = usermodel.ID_NO;
Session["MOBILE"] = usermodel.MOBILE;
Session["MRN"] = usermodel.PATIENT_NO;
return RedirectToAction("Index", "Result");
}
}
}
Я отлаживаю код и параметры сеанса сохраняют значение, а не ноль .
Это код Index.cs html:
@model System.Data.DataTable
@{
ViewBag.Title = "Index";
}
<h2>نتائج تحاليل المختبر </h2>
<table class="table">
<tr>
<th> PATIENT NO </th>
<th>
ORDER NO
</th>
<th>
PATIENT NAME
</th>
<th>
REQUEST DATE
</th>
<th>
DOCTOR NAME
</th>
</tr>
@foreach (System.Data.DataRow dr in Model.Rows)
{
<tr>
<td>@dr["PATIENT_NO"].ToString()</td>
<td>@dr["LAB_ORDER_NO"].ToString()</td>
<td>@dr["PATIENT_NAME_A"].ToString()</td>
<td>@dr["SERV_REQUEST_DATE_G"].ToString()</td>
<td>@dr["SERV_REQUEST_DOCTOR_NAME"].ToString()</td>
<td>@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) </td>
</tr>
}
</table>
<p>
@Html.ActionLink("Edit", "Edit", new { /* id = Model.PrimaryKey */ }) |
@Html.ActionLink("Back to List", "Index")
</p>
Наконец-то появилась ошибка в этой строке перед каждым oop, и когда я использую сеанс ["MRN"], но Когда я выбираю данные напрямую, без параметра сеанса его работы, в чем ошибка? Также я проверил сообщения на сайте, но никакого решения для моего случая.
@foreach (System.Data.DataRow dr in Model.Rows)