Solved

ASP.NET MVC App - trouble getting data

Posted on 2011-09-04
5
411 Views
Last Modified: 2012-05-12
Hey there,

Not sure exactly the best way to approach this because I don't really know what I'm doing but, I guess that's why I'm here!  :)

Anyway - I have created an ASP.NET MVC 2 Web Application in Visual Studio 2010.  I'm trying to get a working version of the DHTMLXScheduler component on my page using the tutorial located HERE.  The tutorial is in C# but my application has to be in VB (I'll be working with another programmer after he gets back from vacation so I'm trying to pull the load for two weeks).  

So, I have taken the .cs specific bits and translated them using THIS which seems to have worked fairly well because I can get the calendar displayed on my Index.aspx view.  So the first part of the tutorial is working for me.  I've got the view displaying the calendar.

The trouble comes in step 2 which involves getting data to display in the calendar.  To describe the problem behavior - I run the application from the IDE and it starts to load the page but, I get a dialog box that has what looks like the contents of an asp.net server error page.  The following looks like the important bits (I have stripped out some of the tags that were in the dialog box to make it easier for you to read):

Compiler Error Message: </b>BC30451: &#39;foreach&#39; is not declared. It may be
inaccessible due to its protection level.

Source Error:

Line 1:  &lt;%@ Page Language=&quot;VB&quot; Inherits=&quot;System.Web.Mvc.ViewPage&quot; ContentType=&quot;text/xml&quot; %&gt;

Line 2:  &lt;data&gt;

&lt;% foreach (var myevent in Model) { %&gt;
Line 4:  &lt;event id=&quot;&lt;%=myevent.id%&gt;&quot;&gt;

Line 5:  &lt;start_date&gt;&lt;![CDATA[&lt;%= String.Format(&quot;{0:MM/dd/yyyy HH:mm}&quot;,myevent.start_date) %&gt;]]&gt;&lt;/start_date&gt;</pre></code>


So it looks like the problem is somewhere in Data.aspx which contains the following code:
<%@ Page Language="VB" Inherits="System.Web.Mvc.ViewPage" ContentType="text/xml" %>
<data>
<% foreach (var myevent in Model) { %>
<event id="<%=myevent.id%>">
<start_date><![CDATA[<%= String.Format("{0:MM/dd/yyyy HH:mm}",myevent.start_date) %>]]></start_date>
<end_date><![CDATA[<%= String.Format("{0:MM/dd/yyyy HH:mm}",myevent.end_date) %>]]></end_date>
<text><![CDATA[<%= myevent.text%>]]></text>
</event>
<% } %>
</data>

Open in new window


Any idea where I might have gone wrong?  From googling around I'm thinking I've left something out that the VB needs and C# doesn't but I wouldn't even begin to know what that is.  

There are a bunch of pieces to this and I'd be happy to post anything you might need.

Thanks in advance for any help.  

B
0
Comment
Question by:ttist25
  • 3
  • 2
5 Comments
 
LVL 35

Accepted Solution

by:
Miguel Oz earned 500 total points
ID: 36481633
I think the syntax is:
@For Each myevent In Model
   Dim currentEvent = myevent
then use currentEvent to load what ever html your are planning to do for example a link:
@Html.ActionLink("Select", "Index", New With {.id = currentEvent.Id})
Check: (vbhtml is different form cshtml)
http://code.msdn.microsoft.com/Introduction-to-MVC-3-10d1b098/sourcecode?fileId=41255&pathId=85012416
0
 
LVL 1

Author Comment

by:ttist25
ID: 36481928
Thanks mas!  

That got rid of the error.  No data is loading into the calendar but it's not throwing the error.  Here's what I have in Data.aspx now:

<%@ Page Language="VB" Inherits="System.Web.Mvc.ViewPage" ContentType="text/xml" %>
<data>
<%  For Each myevent In Model
        Dim currentEvent = myevent%>
<event id="<%=currentEvent.id%>">
<start_date><![CDATA[<%= String.Format("{0:MM/dd/yyyy HH:mm}",currentEvent.start_date) %>]]></start_date>
<end_date><![CDATA[<%= String.Format("{0:MM/dd/yyyy HH:mm}",currentEvent.end_date) %>]]></end_date>
<text><![CDATA[<%= currentEvent.text%>]]></text>
</event>
<%  Next%>
</data>

Open in new window


I need to stop looking at it for the night and check that link in the morning.  

Thanks a bunch.  That was a great help.  
0
 
LVL 1

Author Closing Comment

by:ttist25
ID: 36481946
Thanks again
0
 
LVL 1

Author Comment

by:ttist25
ID: 36485504
Ugh - I'm such an IDIOT!  Your solution fixed everything.  When I ran the application the calendar was defaulting to July 2010 instead of the current month so the dates I had added didn't show.  

Kick Kick Kick :P

Thanks again!
0
 
LVL 35

Expert Comment

by:Miguel Oz
ID: 36486073
No problem, it always work for me to go away for a walk or have a break if I am stuck.
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In .NET 2.0, Microsoft introduced the Web Site.  This was the default way to create a web Project in Visual Studio 2005.  In Visual Studio 2008, the Web Application has been restored as the default web Project in Visual Studio/.NET 3.x The Web Si…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

825 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question