user2122825
user2122825

Reputation: 57

unexpected "{" after @ in razor code in mvc4

I am getting below error in render partial in razor code, Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code.

@if (Model.Count() > 0)
{
    <div id="mReserveForTodayPartial">    
        @{Html.Partial("UpdateReserveForToday.mobile");}
    </div>
}

kindly help..!

Upvotes: 2

Views: 11142

Answers (3)

Anand kumar
Anand kumar

Reputation: 161

Below code should resolve this issue.

@if (Model.Count() > 0)
{
    <div id="mReserveForTodayPartial">    
        Html.Partial("UpdateReserveForToday.mobile");
    </div>
}

As Razor view engine can parse the code if the statements are available with in "@{ }", So in your code "@{}" is present at "If" statement so its not required to specify again.

Upvotes: 0

Maheshwari Kahar
Maheshwari Kahar

Reputation: 26

try this code:

@{  List<SelectListItem> listItems = new List<SelectListItem>();
  foreach (var item in ViewData["Subcategory"] as IEnumerable<ApplicationOneStoreForEstore.Models.tblsubcategory>)     {
    listItems.Add(new SelectListItem            {
      Text = item.subcategory_name,
      Value = Convert.ToString(item.subcategory_id)
    });
  }
}

If you have to bind DropDownList then You have to placed this code before Html.BeginForm(..)

Upvotes: 0

Ehsan Sajjad
Ehsan Sajjad

Reputation: 62498

Html.Partial() return MvcHtmlString so you have to do like this:

 @Html.Partial("UpdateReserveForToday")

in Html.RenderPartial() case it writes to the output stream and that's why it's return type is void, so when using Html.RenderPartial() you have to do this:

@{

Html.RenderPartial("UpdateReserveForToday");

}

Upvotes: 4

Related Questions