여러 가지 방법
- 이 TempData에 [ "statusmsg을"]를 넣고 액션 또는보기에 거기에서을 선택합니다. 단점 : 사용자가 페이지를 클릭하지 않고 페이지를 다시로드하지 않으면 다시 표시되지 않습니다.
- 세션에 추가하십시오. 사용자가 상태 링크를 클릭 할 때만 세션에서 삭제됩니다.
직접 TempData/세션에 액세스 할 수 있습니다, 또는 당신이 StatusMsg 속성과 관련된 물건 BaseController을 가질 수 있습니다, 또는 당신이 BaseViewModel (모든 행동 '뷰 모델에 대한 기본 클래스)를 가질 수이 StatusMsg 속성이 포함되어 있습니다.
상태 표시 줄 jQuery와 마찬가지로, Google에서 하나를 선택할 수 있습니다 (예 : http://www.west-wind.com/WebLog/posts/388213.aspx, http://plugins.jquery.com/project/positionFooter). 0에서 절대 위치 : 당신은 MSG 그냥
<script>
<% if (Model.StatusMsg != null) %>
$(function(){ $("#statusbar").fadeIn(); });
<% } %>
</script>
을 얻을 때 0, 폭 100 %, 어쩌면 다음, 불투명도를 설정하면 상단에 위치 할 그러나 경우에, 그것은 CSS/jQuery를 라인의 단지 몇 훨씬 쉽게
여기 OK입니다. 당신은 ID = "MSG"와
#msg {
text-align: center;
position: absolute;
line-height: 2em;
left: 0px;
top: 0px;
width: 100%;
display: none;
opacity: 0.7;
background-color: #aaf;
border-bottom: 1px solid black;
}
이 페이지는 http://plugins.jquery.com/project/jQueryFixedPositionPlugin를 사용하여 스크롤되지 않도록 당신은 위에 요소를 해결할 수와 div에있다.
이제 상태 메시지가있을 때마다 Session [ "status"] = "mymessage"를 수행합니다. 또는 BaseController.OnActionExecuted를 재정의하고 거기에 Session에 메시지를 넣습니다 (응용 프로그램 전체에 적용되는 경우).
<script type="text/javascript">
function showstatus(text) {
$("#msg").fadeIn().append("<div>" + text + "</div>");
}
$(function(){
<% if (Session["status"] != null) { %>
var status = '<%= Session["status"] %>';
showstatus(status);
<% ; Session.Remove("status"); } %>
});
</script>
당신은 기본 OnActionExecuting이 작업을 수행하여 Session.Remove ("상태")을 방지 할 수 있습니다 다음보기에 당신이 할 : 다음
{
if (Session["status"] != null)
{
ViewData["status"] = Session["status"];
Session.Remove("status");
}
}
을하고을 ViewData 대신 세션을 참조 보기에서.
이제는 할 일이 더 많을 수 있습니다. 위의 코드는 테스트되지 않은 채로 나와 있습니다.하지만 5 분 안에이 일을 수행하기에 충분하지 않으면 누군가가 완벽한 테스트를 거친 솔루션을 제공하는 데 시간이 걸립니다.이 경우 비용을 청구하지 않습니다 ;-)
굉장합니다. 나는 누군가가 TempData에 대해 언급 할 것인지를 보면서 조용히하고 있었다. 나는 그것을 좋아하지만 확실하지 않았습니다. 둘째, 나는 jQuery 플러그인에 대해 확신하지 못했습니다. 그래서 positionFooter라고 부릅니까? kewl. 이제 Model.StatusMsg (jQuery positionFooter에 뷰의 Model에 대해 추가되었다고 가정)을 어떻게 할 수 있습니까? 위의 코드는 페이드 인으로 만 알려주지 만 내용을 설정하는 방법은 아닙니다. 그냥 편집 해 주실 수 있나요? –
완벽 이 시즈를하기에 충분한 정보가 나와 있습니다. 굉장해. 고마워! –