내 웹 앱은 다른 솔루션 위에 구축 된 솔루션입니다. 기본 솔루션은 여러 제품에 대한 플랫폼을 의미합니다. 대부분의 경우이 방법은 정상적으로 작동하지만 제품 별보기를 만들 때 이상한 일이 발생합니다.내 ascx 파일이 내 코드 숨김 속성을 선택하지 않는 이유는 무엇입니까?
내 코드 숨김 클래스에 ViewUserControl<SomeViewModel>
을 사용하고 있습니다. 뒤에있는 코드에서 this.Model
과이 클래스에서 기대할 수있는 다른 모든 기능을 이용할 수 있습니다. 하지만 내 ascx 파일에서 this.Model
또는 ViewUserControl
에 정의 된 다른 속성에 액세스하려고하면 빨간색 squiggley 줄이 나타납니다. 내 코드에서 직접 정의한 속성에 액세스하려고하면 빨간색 squiggley 줄이 생깁니다.
재미있는 점은 어떤 실수를 저 지르지는 않는다는 것입니다. 뷰는 런타임에 잘 렌더링되고 빌드 오류를주지 않습니다. 하지만 내 ascx 파일 은 오류가있을 것이라고라고 생각합니다. 정확히 동일한보기 ()를 플랫폼 네임 스페이스에 작성하면 올바르게 작동합니다. 빨간 삐걱 거리는 소리가 들리지 않습니다.
나는 이것이 정말로 짜증나는 것을 알았다. 그것은 어떤 의미에서든 쇼 스토퍼가 아니지만 인텔리 센스와 모든 재즈가있는 IDE를 사용하려고한다면 제대로 작동하고 거기에 있어야하는 속성을 선택해야합니다.
누구도이 문제에 부딪 혔습니까? 이 문제를 해결할 방법을 알고 있습니까?
감사합니다.
편집
내가 몇 가지 코드를 게시 할 것을 요청했다.
namespace MyProject.MyProduct.Web.Views
{
public class EditSearch : ViewUserControl<SearchResultsViewModel>
{
public bool IsSearchTypeA()
{
...............
}
public bool IsSearchTypeB()
{
...............
}
}
}
을 그리고 여기 내 ASCX입니다 : 여기에 코드 뒤에 ASP.NET MVC가 나 코드를 사용하지 않는 수 없음을 말해 당신의 그들을 위해
<%
if (!this.IsSearchTypeB())
{
string categoryPageTitle = this.Model.SearchWidgetParameters.Search.CategoryPageTitle;
string categoryPageUrl = this.Model.SearchWidgetParameters.Search.Filters.CategoryPageUrl;
if (!string.IsNullOrEmpty(categoryPageUrl))
{
%> <div id="coid_website_backtoCategoryPageLink"> <%
string tocGuid = this.Model.SearchWidgetParameters.Search.Filters.TocGuid;
if (!string.IsNullOrEmpty(tocGuid))
{
categoryPageUrl += "?guid=" + tocGuid;
}
var backToLink = new HyperLink();
if (this.IsSearchTypeA())
{
backToLink.Text = "Edit Search";
}
else
{
backToLink.Text = "Back to " + TranslatedHtmlTextWriter.Translate(categoryPageTitle);
}
backToLink.NavigateUrl = TransactionOperations.AddContextToUrl(categoryPageUrl.StartsWith("/Browse/") ? categoryPageUrl : "/Browse/" + categoryPageUrl,
WebsiteTransitionType.Default, // Requested: CategoryPage
TransactionOperations.DefaultContextData);
backToLink.RenderControl(this.Writer);
%>
</div>
<%
}
}
%>
편집
뒤에, 미안하지만 말 하키 야. 이 프로젝트는 수년간 존재 해 왔으며 널리 사용되고있는 제품이 있습니다. 내 제품은 최근에야 플랫폼으로 점프하고 있습니다. 플랫폼 솔루션은 모든 곳의 코드를 사용하며 정상적으로 작동합니다. 실제로 런타임에서도 내 제품의 솔루션에서 잘 작동하지만, 필자의 ascx 파일은 내 코드에 대해 알지 못하는 문제가 있습니다. 또한 ViewUserControl
은 System.Web.MVC
클래스입니다. ASP.NET MVC에서 코드 숨김이 사용되지 않는다고 아직도 말씀 하시겠습니까?
ASP.NET MVC에서 코드를 사용해서는 안됩니다. 코드를 게시 할 수 있습니까? –
그것은 나를 크게 혼란스럽게합니다. 코드 숨김을 사용하지 않으면 내 모델의 속성에 어떻게 액세스합니까? 코드 숨김은 내 모델이 특정 유형임을 지정합니다. 나는 그 물건들을 어떻게 얻을 수 있을지 모르겠다. – Samo
어떤 버전의 MVC를 사용하고 있습니까? 나는 MVC 3을 사용하고 있는데 파일 뒤에 어떤 코드도 보이지 않는다. "코드 숨김"이라고하는 것은 컨트롤러와 모델입니다. –