는 시나리오확인 ViewBag 값은 자바 스크립트
$(function(){
//if (ViewBag.IsCallFunction){
somefunction();
//
//do something else
});
viewBag 변수, 즉 null이 아닌, 존재하고 true로 설정되어있는 경우, 다음 내가 좋아하면은 존재 자바 스크립트 함수를 호출하십시오. 어떻게해야합니까?
는 시나리오확인 ViewBag 값은 자바 스크립트
$(function(){
//if (ViewBag.IsCallFunction){
somefunction();
//
//do something else
});
viewBag 변수, 즉 null이 아닌, 존재하고 true로 설정되어있는 경우, 다음 내가 좋아하면은 존재 자바 스크립트 함수를 호출하십시오. 어떻게해야합니까?
@{if(ViewBage.somevalue!=null && ViewBage.somevalue=="true")
{
<script type="text/javascript">
somefunction();
</script>
}
}
같은 일을하지만,이를 기억할 수는 OP에 따라, 당신은 당신이 그것을 렌더링 할 수있는, 호출, 그래서 문서 내부를 호출 할 수 없습니다, 전화를받을 것입니다. 문서가로드 될 때 준비 됨
<script type="text/javascript">
$(function() {
@if (ViewData.ContainsKey("IsCallFunction") && ViewBag.IsCallFunction)
{
<text>somefunction();</text>
}
});
</script>
하지만이 경우 코드를 단순화 할 수 있기 때문에 당신이 대신 ViewBag의 뷰 모델을 사용하는 것이 좋습니다 :
<script type="text/javascript">
$(function() {
@if (Model.IsCallFunction)
{
<text>somefunction();</text>
}
});
</script>
당신은하지 전화 면도기 코드에서 자바 스크립트 기능을 Razor가 서버에서 실행되고 JavaScript가 클라이언트에서 실행되기 때문입니다.
대신 브라우저에서 Razor가 생성 한 HTML 코드를로드하면 실행되는 JavaScript 코드를 클라이언트에 전송할 수 있습니다. 렌더링으로
당신은
<script type="text/javascript">
@* The following line is Razor code, run on the Server *@
@if (ViewData.ContainsKey("IsCallFunction") && ViewBag.IsCallFunction) {
@* The following lines will be emitted in the generated HTML if the above condition is true *@
$(function(){
somefunction();
//do something else
});
@} @* This is the closing brace for the Razor markup, executed on the Server *@
</script>
'ViewBag.IsCallFunction'이이 뷰를 렌더링하는 컨트롤러 액션 내에서 값이 지정되지 않으면 충돌이 발생합니다. 그것은 왜 ViewBag를 사용하지 말고 모델을 보는 수백만 가지 이유 중 하나입니다. C#에서는'$'와 같은 변수가 없으므로 런타임에 예외가 발생합니다. 내 답변에 설명 된대로 '
감사의 말을 전한다. 내 대답 업데이트 중. –
쉽고 멋진 솔루션 – vinodh