這是我的模型:如何在MVC4中創建自定義刪除操作結果?
public class StockLine : Keyed
{
/.../
/// <summary>
/// Reference to the delivery note line that created the current stock line.
/// </summary>
[Navigation]
[Display(ResourceType = typeof(Resources.ApplicationResources), Name = "DeliveryNoteLine")]
public virtual DeliveryNoteLine DeliveryNoteLine { get; set; }
}
一個料線可能與它對應的DeliveryNoteLine。
我想實現的是,當您刪除DeliveryNoteLine,它也必須刪除其相應的StockLine。但我不知道如何做到這一點。
這是我的控制器:
/// <summary>
/// Returns the default Delete view for the TEntity object.
/// </summary>
/// <param name="id">Id of the TEntity object to delete.</param>
/// <returns>Redirection to the Index action if an error occurred, the Delete View otherwise.</returns>
public virtual ActionResult Delete(string id)
{
var request = new RestSharp.RestRequest(Resource + "?id={id}", RestSharp.Method.GET) { RequestFormat = RestSharp.DataFormat.Json }
.AddParameter("id", id, RestSharp.ParameterType.UrlSegment);
var response = Client.Execute(request);
// Deserialize response
var model = DeserializeResponse<TEntity>(response);
HandleResponseErrors(response);
if (Errors.Length == 0)
return View(model);
else
{
ViewBag.Errors = Errors;
return RedirectToAction("Index");
}
}
/// <summary>
/// Handles the POST event for the Delete action.
/// </summary>
/// <param name="id">Id of the TEntity object to delete.</param>
/// <param name="model">TEntity object to delete.</param>
/// <returns>Redirection to the Index action if succeeded, the Delete View otherwise.</returns>
[HttpPost]
public virtual ActionResult Delete(string id, TEntity model)
{
var request = new RestSharp.RestRequest(Resource + "?id={id}", RestSharp.Method.DELETE) { RequestFormat = RestSharp.DataFormat.Json }
.AddParameter("id", id, RestSharp.ParameterType.UrlSegment);
var response = Client.Execute(request);
// Handle response errors
HandleResponseErrors(response);
if (Errors.Length == 0)
return RedirectToAction("Index");
else
{
request = new RestSharp.RestRequest(Resource + "?id={id}", RestSharp.Method.GET) { RequestFormat = RestSharp.DataFormat.Json }
.AddParameter("id", id, RestSharp.ParameterType.UrlSegment);
response = Client.Execute(request);
model = DeserializeResponse<TEntity>(response);
ViewBag.Errors = Errors;
return View(model);
}
}
任何想法?
我想做你所提到的,但我不能夠獲得StockLine的DeliveryNoteLine_Id屬性,所以即使更改資源參數也無法刪除它eter,這應該是「StockLines」。 – Kutyel
難道你不能通過第一個模型的導航屬性? –
我不行。如果我嘗試瀏覽delete action結果方法中的模型屬性,它只有兩個:Id和DateCreated。如果我只能從stocklines控制器中檢索到股票行的參考或交貨單行,我可以毫無問題地將其刪除,但是我不能。 – Kutyel