我在MVC中編寫代碼,我不明白我項目中的行爲公共屬性!我的代碼非常簡單,增量屬性。當我按下按鈕時,屬性被覆蓋。它的工作只有當我有STATIC屬性,但是當我有PUBLIC時,增量不起作用。公共資產是短暫的?你能幫我明白這一點, 其我的控制器:靜態與公共財產
public class DatsController : Controller
{
// GET: Dats
Dats dats;
static public int _Var
{
get; set;
}
public DatsController()
{
dats = new Dats();
}
public ActionResult Index()
{
if (Request.HttpMethod == "post")
{
ViewBag.zmienna = _Var;
dats.dayToday = DateTime.Now.Date;
}
else
{
// var = var + 5;
ViewBag.zmienna = _Var;
}
return View();
}
public ActionResult Next()
{
_Var = _Var + 5;
//dats.firstDayWeek = data.firstDayWeek.AddDays(7);
return RedirectToAction("Index", "Dats");
}
}
你的答案確定THX!我讀過了,我寫了另一個代碼,仍然沒有工作....我知道問題在哪裏,但我不知道如何解決它們; /如果你能幫助我,我會很好:)
我的模型:
public class Dats
{
static private DateTime _dataToday;
static private DateTime _firstDayWeek;
static private DateTime _lastDayWeek;
static public DateTime DayToday { get { return _dataToday = DateTime.Now.Date; } }
static public DateTime FirstDayWeek { get { return _firstDayWeek = Dats.pierwszyDzienTygodnia(_dataToday); } set { _firstDayWeek = value; } }
static public DateTime LastDayWeek { get { return _lastDayWeek = Dats.ostatniDzienTygodnia(_dataToday); } set { _lastDayWeek = value; } }
static public DateTime pierwszyDzienTygodnia(DateTime data)
{
int dzien = DayOfWeek.Monday - data.DayOfWeek;
if (dzien > 0)
{
dzien -= 7;
}
return data.Date.AddDays(dzien);
}
static public DateTime ostatniDzienTygodnia(DateTime data)
{
DateTime ostatniDzien = pierwszyDzienTygodnia(data.Date);
return ostatniDzien.Date.AddDays(6);
}
}
我的控制器:
public class DatsController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Next()
{
Dats.FirstDayWeek = Dats.FirstDayWeek.AddDays(7);
return RedirectToAction("Index", "Dats");
}
}
我的觀點:
@using (Html.BeginForm("Next", "Dats", FormMethod.Post))
{
<button type="submit">Next</button>
@*@Html.ActionLink("dalej","Next", "Visits",new {data =7})*@
<dl class="dl-horizontal">
@Dats.DayToday
<dd>@Dats.FirstDayWeek</dd>
<dd>@Dats.LastDayWeek</dd>
</dl>
}
,我想來增大日期在我的財產第一天DayWeek。
不要像*不要*那樣在控制器中使用靜態屬性。控制器不是*線程安全的,因此不僅要在特定用戶的多個請求之間共享靜態屬性,還要共享所有用戶的所有請求。換句話說,你在不同的客戶端之間泄露數據。 – 2014-09-03 14:09:22