Wednesday, June 5, 2024
 Popular · Latest · Hot · Upcoming
113
rated 0 times [  117] [ 4]  / answers: 1 / hits: 52042  / 11 Years ago, mon, march 25, 2013, 12:00:00

I am trying to access TempData in Javascript. but getting null value.
I am making ajax call to Update the record and i want to display Record updated succesfully message. which will come from UpdateOperation action from the controller.
but currently it will display null value. I also check with Firebug it shows as follows:



function onComplete(e) {

if (e.name == update) {

alert('');

}


Here is my code of controller



 public class OperationController : BaseController
{
/// <summary>
/// Index action will return template view of the page without data
/// </summary>
/// <returns>Blank Action</returns>
public ActionResult Index()
{
return this.View();
}

/// <summary>
/// Get all Operation from System
/// </summary>
/// <returns>return action result</returns>
[GridAction]
public ActionResult SelectOperation()
{
IEnumerable<OperationEntity> operationList = OperationComponent.GetAll();
return this.View(new GridModel(operationList));
}

/// <summary>
/// Method for update operation
/// </summary>
/// <param name=entity>moduleViewModel to update Module</param>
/// <returns>return action result</returns>
[GridAction]
public ActionResult UpdateOperation(OperationEntity entity)
{
if (ModelState.IsValid)
{
entity.Log = new BusinessCore.BusinessEntities.LogDetails();
entity.Log.ModifiedBy = SessionHelper.UserId;
Status status = OperationComponent.Update(entity);
this.TempData[AlertMessage] = status.Message;
this.ViewData[_AlertMessage] = status.Message;
return this.View(new GridModel(OperationComponent.GetAll()));
}
else
{
return this.View(entity);
}
}
}


In my view



@using Telerik.Web.Mvc.UI;
@{
ViewBag.Title = Operation List;
}

<h2>@ViewBag.Title</h2>
<script src=../../../../Scripts/jquery-1.7.1.min.js type=text/javascript></script>
<script type=text/javascript>
// function onSave(e) {
// alert('Record Save Succesfully');
// }
function onComplete(e) {
if (e.name == update) {
alert('@TempData[AlertMessage]');
alert('@ViewData[_AlertMessage]');
}
if (e.name == insert) {
alert(Operation Inserted Successfully);
}
if (e.name == delete) {
alert(Operation Deleted Successfully);
}
}
function newAlert(type, message) {
if (message != || message != null) {
$(#alert-area).append($(<div class='alert alert-success + type + fade in' data-alert><p><b> + message + </b></p></div>));
$(.alert-success).delay(4000).fadeOut(slow, function () { $(this).remove(); });
}
}
</script>

@(Html.Telerik().Grid<QuexstERP.BusinessCore.BusinessEntities.SysAdmin.OperationEntity>()
.Name(Grid)
.DataKeys(keys =>
{
keys.Add(p => p.Id);
})
.ToolBar(commands => commands.Insert().ButtonType(GridButtonType.Image).ImageHtmlAttributes(new { style = margin-left:0, title = Add }))
.DataBinding(dataBinding =>
{
dataBinding.Ajax()
.Select(SelectOperation, Operation)
.Insert(InsertOperation, Operation)
.Update(UpdateOperation, Operation)
.Delete(DeleteOperation, Operation);
})
.Columns(columns =>
{
columns.Command(commands =>
{
commands.Edit().ButtonType(GridButtonType.Image).HtmlAttributes(new { title = Edit });
commands.Delete().ButtonType(GridButtonType.Image).HtmlAttributes(new { title = Delete });
}).Width(80).Title(Commands);
columns.Bound(p => p.Name).Width(200).Title(Operation Name);
columns.Bound(p => p.Description).Width(310).Title(Description);
})
.ClientEvents(events => events
.OnComplete(onComplete)
)
.Editable(editing => editing.Mode(GridEditMode.PopUp).InsertRowPosition(GridInsertRowPosition.Top))

.Pageable()
.Scrollable()
.Sortable()
.Filterable()
)
@section HeadContent {
<style type=text/css>
.field-validation-error
{
position: absolute;
display: block;
}

* html .field-validation-error { position: relative; }
*+html .field-validation-error { position: relative; }

.field-validation-error span
{
position: relative;
white-space: nowrap;
color: red;
padding: 10px 5px 3px;
background: transparent url('@Url.Content(~/Content/Common/validation-error-message.png) ') no-repeat 0 0;
}

/* in-form editing */
.t-edit-form-container
{
width: 480px;
margin: 1em;
}

.t-edit-form-container .editor-label,
.t-edit-form-container .editor-field
{
padding-bottom: 1em;
float: left;
}

.t-edit-form-container .editor-label
{
width: 25%;
text-align: right;
padding-right: 3%;
clear: left;
}
.t-edit-form-container .editor-field textarea
{
font-size:11px;
width:80%;
}
.t-edit-form-container .editor-field
{
width: 70%;
}
</style>
}

More From » asp.net-mvc

 Answers
29

I know it's an old question but I thought I'd answer as I was looking for the exact same solution and hopefully help some others out.


This solved it for me how-to-get-the-tempdata-in-javascript


Essentially, Your syntax is missing parenthesis


    //Your code
alert('@TempData["AlertMessage"]');

// Correct code
alert('@(TempData["AlertMessage"])');

The parenthesis after the @


Hope this helps the next searcher like me.


[#79378] Saturday, March 23, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
maleahp

Total Points: 223
Total Questions: 102
Total Answers: 116

Location: Sao Tome and Principe
Member since Wed, Dec 29, 2021
2 Years ago
;