这是一个非常基本的问题,但只是希望了解服务器如何与连接到它的浏览器/计算机进行交互。
当用户点击Create()动作时,它会将Currentclaim对象发送到视图。因为_currentclaim变量为null,所以它会创建一个具有某些属性的新对象。如果我加载另一个浏览器(IE,Safari)并使用该应用程序它不是一个'新的开始',因为_currentclaim保留了在其他浏览器中给它的属性。
public class ClaimsController : Controller
{
private static ClaimViewModel _currentclaim;
private static ClaimViewModel Currentclaim
{
get
{//If _currentclaim is null then create it. Return it.
if (_currentclaim == null)
_currentclaim = GetClaimViewModel();
return _currentclaim;
}
set//set value of Currentclaim.
{
_currentclaim = value;
}
}
public static ClaimViewModel GetClaimViewModel()
{
return new ClaimViewModel()
{
ClaimID = 101,
SubmissionUserID = 10,
DateSubmitted = DateTime.Now,
LineViewModels = new List<LineViewModel>() {
new LineViewModel() {MeetingDate=DateTime.Now,SubCatID=1},
}
};
}
public ActionResult Create()
{
return View(Currentclaim);
}
[HttpPost]
public ActionResult Create(ClaimViewModel claimvm)
{ claimvm.SubmissionUserID = Currentclaim.SubmissionUserID;
claimvm.DateSubmitted = Currentclaim.DateSubmitted;
_currentclaim = claimvm;
return View("Summary", Currentclaim);
}
}
我只想再次确保当用户从托管的任何地方连接到我的Web应用程序时,他或她的会话将以空对象开始(而不是由其他人实例化的......如果这是有意义的话)